我的 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”。
如果有人可以向我解释它是如何工作的,我能做些什么来解决它?
任何帮助,将不胜感激。