MVC 4 ASP.NET中的订单列表,即控制器接收2个变量

时间:2013-12-03 21:47:28

标签: c# asp.net asp.net-mvc-4 controller html.actionlink

我正在尝试重写默认的MVC索引控制器,该控制器显示数据库中的记录列表。我试图通过一个标题上的功能订单和在页面上搜索的功能:

控制器代码:

public ActionResult Index(String sortOrder, String searchString) {
        ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "Name_desc" : "";
        var profiles = from s in db.Profiles
                       select s;

        if (!String.IsNullOrEmpty(searchString))
        {
            profiles = profiles.Where(d => d.lastName.ToUpper().Contains(searchString.ToUpper()));
        }
        switch (sortOrder)
        {
            case "Name_desc":
                profiles = profiles.OrderByDescending(s => s.lastName);
                break;
            default:
                profiles = profiles.OrderBy(s => s.lastName);
                break;
        }
        return View(profiles.ToList());
    }

查看代码:

<th>
    @Html.ActionLink("Last Name", "Index", new { sortOrder = "Name_desc" })
</th>

我一直在尝试各种方法,但似乎我没有成功使用@ html.actionLink调用控制器方法

完全遵循本教程但不起作用: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

1 个答案:

答案 0 :(得分:0)

所以解释我是如何解决答案的......

actionResult是一个HttpPost回来了。因此,只有在单击按钮时才会接受输入。好像@HTML.actionlinks只调用了视图方法。

我只是创建了一个新的Index(String sortOrder, String searchString)方法,视图代码为@Html.ActionLink("Last Name", "/Index", new { sortOrder = ViewBag.NameSortParm})

它凌乱,但仍解决了我的问题