asp.net-mvc – 如何在MVC选择路由之前添加路由参数
|
我正在尝试为现有的MVC 3应用程序添加对不同语言的支持.到目前为止,我的链接是 oldUrl -> myapp.com/Item/Details/5/some-title 网站上有不同地方的网站链接.但是现在我想更改URL以便包含语言: newUrl -> kmyapp.com/en/Item/Details/5/some-title 但是我希望oldUrl链接有效.问题是如何做到这一点…最简单的方法是添加另一条路线,但我已经有太多它们而且它变得有点丑陋,当我从一个不创建的网页创建网址时有语言链接也没有语言所以我必须做其他事情. 另一种方法是覆盖在MVC尝试将请求映射到特定路由之前的某些东西,但是已经解析了请求URL并填充了routeValues字典.所以我可以检查语言,如果它没有包含在路由参数中,我可以自己添加它并调用父类的实现继续.那可能吗?我应该注意什么 – UrlRoutingModule,MvcHttpHandler或其他什么?我可以覆盖什么以及如何告诉MVC使用我的版本? 任何其他想法也将不胜感激! 解决方法另一种方法是覆盖在MVC尝试将请求映射到特定路由之前的某些东西,我可以自己添加它并调用父类的实现继续.那可能吗?
您可以覆盖其中包含URL详细信息的GetRouteData in RouteBase. public override RouteData GetRouteData(HttpContextBase httpContext)
{
string url = httpContext.Request.AppRelativeCurrentExecutionFilePath;
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add(new MyUrlRoute()); // Add before your default Routes
routes.MapRoute(
"Default",// Route name
"{controller}/{action}/{id}",// URL with parameters
new { controller = "Home",action = "Index",id = UrlParameter.Optional } // Parameter defaults
);
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC3 AJAX.BeginForm AjaxOptions OnSuccess OnFai
- ASP.NET Web服务中的可选参数
- asp.net-mvc-3 – 构造函数注入用作Action方法参数的View M
- asp.net – Log4net可以有多个appender写入同一个文件?
- 为ASP.NET应用程序实现后台服务的最佳方法是什么?
- asp.net-mvc-3 – 在Asp.net MVC中为optgroup功能使用Helpe
- asp.net-mvc – warns – html.helpers在项目更新后无法识别
- 哪些ASP.NET生命周期事件可以异步?
- asp.net-mvc – 如何填充mvc剃刀部分视图
- asp.net-mvc – MVC Ajax.Beginform OnComplete / OnSucces
