我的 ASP.NET MVC3 应用程序中的路由存在一些问题,它确实不能按我的意愿工作。
Global.asax 中的路由定义
routes.MapRoute(
"News", // Route name
"{lang}/{controller}/{action}/{page}/{id}", // URL with parameters
new { lang = "pl", controller = "News", action = "Index", page = 1, id = UrlParameter.Optional } // Parameter defaults
);
所以我想在两种情况下使用它:
/{lang}/{controller}/{action}/{page}- 转到特定分页的页面/{lang}/{controller}/{action}/{page}/{id}- 记住当前页面,并转到特定的页面id。
生成我使用的链接:
@Html.RouteLink(i.ToString(), "News", new { lang = ViewBag.Lang, page = i })
其中i是页数,lang 是语言。
在控制器中,我处理它的女巫动作:
public ViewResult Index(string lang, int page = 1)
问题
@Html.RouteLink给了我链接/pl/News/Index/2(当点击“2”时),但我的控制器没有处理它,页面仍然是“1”。因此,当我两次单击相同的链接时,它会给出:/pl/News/Index/2/2然后页面等于“2”。
如果有人可以向我解释它是如何工作的,我能做些什么来解决它?
任何帮助,将不胜感激。