使用自定义路由时,Actionlinks会添加错误的参数

时间:2010-10-10 17:41:37

标签: asp.net-mvc routes actionlink

我正在使用此自定义路由在Home Controller的索引方法中启用分页:

    routes.MapRoute( _
    "HomePage", _
    "Home/Index/{page_num}", _
    New With {.controller = "Home", .action = "Index", .page_num = ""} _
    )

但是当我导航到第2页的任何页面时,actionlinks将页码附加到网址:

Html.ActionLink("Home", "Index", "Home")

将呈现_http:// localhost / Home / Index / 2而不是_http:// localhost / Home / Index

但我注意到没有参数的动作方法正确渲染: _http://本地主机/首页/

1 个答案:

答案 0 :(得分:0)

Html.ActionLink使用以前路由值字典中的page_num参数,除非您将某些参数更改为page_num。

如果你有如下路线:

routes.MapRoute( _
    "HomePage", _
    "{controller}/{action}/{page_num}", _
    New With {.controller = "Home", .action = "Index", .page_num = ""} _
    )

Html.ActionLink(“Home”,“about”)将清除page_num变量,您将获得类似/ home / about的url而不是/ home / about / 2。 看看这个相关的Question。也许它会有所帮助。