错误的网址与html.actionlink

时间:2011-10-30 12:33:04

标签: asp.net-mvc asp.net-mvc-3 razor vb.net-2010

我做了分页系统。一切都好。 点击第2页后,所有主页链接都在变化。

@Html.ActionLink("Home page", "Index", "Home") //This is standard routing without values.

我添加了分页链接到页面末尾。

@Html.ActionLink("2", "Index", "Home", New With {.id = 2}, Nothing) //This works good too.

我的问题是当我点击第二页或更多页面时(例如:www.site.com/Home/Index/2)我的所有主页链接转换为

<a href="/Home/Index/2">Home page</a>
同样如此。 我怎么解决这个问题?

1 个答案:

答案 0 :(得分:3)

当您点击第2页时,{.id = 2}将成为您的RouteData的一部分。因为您的路由可能如下所示:(在Gloabal.asax中)

 routes.MapRoute( _
        "Default", _
        "{controller}/{action}/{id}", _
        New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
    )

ASP.NET MVC将使用此路由生成链接。所以它将包括Id = 2.要解决此问题,您需要在不需要时明确覆盖它:

@Html.ActionLink("Home page", "Index", "Home", New With {.id = ""}, Nothing)