使用搜索关键字对HTML表进行排序?
我的表格显示、搜索和排序正确。但是,当我搜索关键字并在表中显示记录并单击列标题进行排序时,搜索结果将被清除,我总是返回到原始页面,而不是对搜索结果进行排序。我不明白为什么会这样?任何帮助都将不胜感激。多谢各位 控制器:使用搜索关键字对HTML表进行排序?,html,asp.net-mvc,razor,Html,Asp.net Mvc,Razor,我的表格显示、搜索和排序正确。但是,当我搜索关键字并在表中显示记录并单击列标题进行排序时,搜索结果将被清除,我总是返回到原始页面,而不是对搜索结果进行排序。我不明白为什么会这样?任何帮助都将不胜感激。多谢各位 控制器: public ActionResult ViewInventory(string owners, string keyword, string sortOrder) { ViewBag.OwnerSort = sortOrder == "o
public ActionResult ViewInventory(string owners, string keyword, string sortOrder)
{
ViewBag.OwnerSort = sortOrder == "owner_asce" ? "owner_desc" : "owner_asce";
var records = from s in db.Assets select s;
switch (sortOrder)
{
case "owner_asce":
records = records.OrderBy(s => s.InventoryOwner);
break;
case "owner_desc":
records = records.OrderByDescending(s => s.InventoryOwner);
break;
}
return View(records.ToList());
}
视图:
@model IEnumerable
@{
ViewBag.Title=“查看库存”;
}
查看库存
@使用(Html.BeginForm())
{
关键字搜索:@Html.TextBox(“关键字”)
@ActionLink(“所有者”、“查看库存”,新的{sortOrder=ViewBag.OwnerSort})
@foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.InventoryOwner)
}
}
排序时,还需要传递关键字
参数
首先,将其从操作传递到视图:
public ActionResult ViewInventory(string owners, string keyword, string sortOrder)
{
ViewBag.OwnerSort = sortOrder == "owner_asce" ? "owner_desc" : "owner_asce";
ViewBag.Keyword = keyword;
// ...
}
那么在你看来,
<th>
@Html.ActionLink("owners","ViewInventory", new { sortOrder = ViewBag.OwnerSort, keyword = ViewBag.Keyword })
</th>
@ActionLink(“所有者”,“视图库存”,新的{sortOrder=ViewBag.OwnerSort,keyword=ViewBag.keyword})
谢谢!!终于成功了。为了弄明白这一点,我花了4个小时。
<th>
@Html.ActionLink("owners","ViewInventory", new { sortOrder = ViewBag.OwnerSort, keyword = ViewBag.Keyword })
</th>