asp.net-mvc-3 – ASP.net MVC3多语言路由重写
发布时间:2020-12-16 03:25:46 所属栏目:asp.Net 来源:网络整理
导读:有没有什么好方法可以为多语言Web应用程序创建路由重写? URL架构应如下所示 HTTP://域名 / {语言} / {控制器} / {操作} / {ID} 但是也应该支持没有语言部分的URL,但它们不应该直接映射到控制器,而是生成重定向响应. 这里重要的是,重定向不应该硬编码为特定
有没有什么好方法可以为多语言Web应用程序创建路由重写?
URL架构应如下所示 HTTP://<域名> / {语言} / {控制器} / {操作} / {ID} 但是也应该支持没有语言部分的URL,但它们不应该直接映射到控制器,而是生成重定向响应. 这里重要的是,重定向不应该硬编码为特定语言,而是根据用户首选语言等因素确定. 注意:确定正确语言的过程不是问题,只是如何进行非静态重写. 谢谢 解决方法
我通过以下路线管理;
routes.MapRoute( "Default",// Route name "{language}/{controller}/{action}/{id}",// URL with parameters new { controller = "Home",action = "Index",language = "tr",id = UrlParameter.Optional },// Parameter defaults new { language = @"(tr)|(en)" } ); 我通过重写DefaultControllerFactory的GetControllerInstance()方法来处理文化.这个例子如下; public class NinjectControllerFactory : DefaultControllerFactory { protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext,Type controllerType) { //Get the {language} parameter in the RouteData string UILanguage; if (requestContext.RouteData.Values["language"] == null) { UILanguage = "tr"; } else { UILanguage = requestContext.RouteData.Values["language"].ToString(); } //Get the culture info of the language code CultureInfo culture = CultureInfo.CreateSpecificCulture(UILanguage); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; return base.GetControllerInstance(requestContext,controllerType); } } 并在global.asax上注册; protected void Application_Start() { //other things here ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory()); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – mvc [DataType(DataType.EmailAddress)没有
- 在Asp.Net中发送电子邮件时出错错误代码为0x80040217
- asp.net-web-api – 如何在ASP.NET Web API中设置默认序列化
- asp.net – 自定义日期colmn telerik网格的过滤器选项
- 身份电子邮件与破折号在Asp.Net身份
- asp.net-mvc-3 – MVC3显示日期短时间没有格式字符串
- asp.net – HttpMethod和HttpRequest的RequestType有什么区
- asp.net-web-api – ASP.NET Web API RTM和子域路由
- .net – 如何过滤FileUpload控件?
- asp.net – 基于角色为网站实现不同视图的最佳方法是什么?
推荐文章
站长推荐
- asp.net – 以编程方式访问httpRuntime maxReque
- asp.net – 将machineKey添加到machine.config
- asp.net – 仅用于字母和数字的正则表达式验证器
- asp.net-mvc – Internet Explorer缓存asp.netmv
- asp.net-mvc-3 – .Net Mvc 3触发器(提交按钮除外
- asp.net – Umbraco神奇地回归到“看起来还有更多
- Asp.Net上传前检查文件大小
- 在Asp.Net中动态添加控件
- oauth-2.0 – AspNet身份2:自定义OAuth端点响应
- asp.net-mvc – 将下拉列表中的SelectedItem绑定
热点阅读