使用搜索关键字对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>