如何为此ActionLink创建正确的路径值?

gre*_*emo 18 c# asp.net-mvc actionlink routevalues

模型SearchResults.aspx是一个实例PersonSearch; 当新页面的请求到达时(GET请求),操作方法应该接受它并计算新结果.

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult SearchResults(PersonSearch search, int? page)
{
    ViewData["Results"] = new PaginatedList<Person>(_searchService.FindPersons(search), page ?? 0, 1);
    return View("SearchResults", search);
}
Run Code Online (Sandbox Code Playgroud)

然后我必须生成上一个/下一个链接:

<%= Html.ActionLink("Next Page >", "SearchResults", routeValues) %>
Run Code Online (Sandbox Code Playgroud)

如果我使用routeValues = ViewData.Model我可以看到传递地址的对象属性,但我无法添加"page"参数.

Lor*_*zCK 24

它认为使用正确的值创建另一个对象更好,而不是使用(并可能改变当前的路由值):

<%=Html.ActionLink("Next Page >", "SearchResults", new {
    search = this.Model,
    page = 1 //or whatever
}) %>
Run Code Online (Sandbox Code Playgroud)

  • 不起作用......它传递类的名称,而不是对应于对象属性的键/值对... (4认同)

dan*_*lmb 6

Scott Guthrie的这篇博客文章帮助我了解了URL Routing:ASP.NET MVC Framework(第2部分):URL Routing

在此输入图像描述 在此输入图像描述

我喜欢他包含测试用例! 在此输入图像描述