asp.net-mvc – 使URL特定于(通过路由)
很难找到这个具体问题的答案,所以在这里不好弹出来:
我们想建立我们的URL完全语言具体,意思
这是在RouteConfig中完成的 url: "{language}/{controller}/{action}/{id}" 但那么棘手的部分:
即使控制器名称以多种语言显示,但指向同一控制器.这是甚么可能吗? 解决方法
那么这是部分可能的(仅限于语言部分).使用不同语言的控制器名称绝对是一个有趣的点,但我认为很难实现.想想像阿比和阿拉伯语和希伯来语这样的比迪语言将会是什么样的.使用不同语言的控制器可能是一个好主意,但是您会为自己创造一个破坏,我相信您必须更改基础的MVC结构才能实现.
语言变化部分很容易,可以像下面这样做. 你可能想看的是全球化.基本上,语言部分对应于当前线程的UI文化.您需要的是以下内容: >定义一条路线,像这样: var lang = System.Threading.Thread.CurrentThread.CurrentUICulture.Name; routes.MapRoute( name: "Default",url: "{language}/{controller}/{action}/{id}",defaults: new { language = lang,controller = "Home",action = "Index",id = UrlParameter.Optional } ); 注册Application_AcquireRequestState并定义如下: protected void Application_AcquireRequestState() { var routes = RouteTable.Routes; var httpContext = Request.RequestContext.HttpContext; if (httpContext == null) return; var routeData = routes.GetRouteData(httpContext); var language = routeData.Values["language"] as string; var cultureInfo = new CultureInfo(language); System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo; System.Threading.Thread.CurrentThread.CurrentUICulture = cultureInfo; } 虽然CurrentUICulture是您需要切换语言从资源文件加载信息,但您也应将CurrentCulture更改为相同的CultureInfo; 我使用CultureInfo的Name属性,以便您的德语将是de-DE,英语en-US等. 如果您需要更多信息,我可以上传一个示例MVC项目供您检查. 更新:一个粗俗的做法,就是将路线段的顺序转换成如下所示: routes.MapRoute( name: "NewDefault",url: "{language}/{id}/{action}/{controller}",id = "Category"} ); 这样,您可以提出以下请求http://www.your_url.com/de/Kategorien.在这种情况下,Kategorien映射到id而不是控制器.您的控制器保持英文或德文(取决于您的名称),但用户看到不同的语言.在你的背景下,你的看法可能是这样的: public ActionResult Index(string id,string categoryName) { // Fetch data based on category name (categoryName) return View(); } 您可以传递附加信息作为参数,但您需要调整路线,如下所示:{language} / {category} / {subcategory} / {action} / {controller} 只要知道这可能会在长期的脖子上变得痛苦,如果你尝试这样做,那么请确保你记录得很好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Sitecore:打开HTML缓存阻止回发行为
- asp.net中的页面卸载事件
- 为什么Request.IsAjaxRequest()在ASP.NET MVC 3中不起作用?
- 判断应用程序是ASP.NET 1.1还是ASP.NET 2.0的方法
- ASP.NETCore使用AutoFac依赖注入
- ASP.net ViewState – 即使在禁用时,也存在一些视图状态.为
- asp.net – Web部署不部署index.cshtml
- asp.net-mvc – 如何防止MVC3 html转义我的验证消息?
- asp.net – 您在实施/使用WebDAV方面有哪些经验?
- asp.net – 子目录中的Web.config在使用页面路由时不起作用
- 圆角按钮ASP.NET
- 为什么我需要停止使用<%= ...%>来渲染并开始使
- asp.net-mvc – 如何使用不同的名称绑定视图模型
- asp.net-mvc – 在ASP.NET MVC中使用域对象和视图
- asp.net – 是否有可能检测到移动浏览器的GPS位置
- asp.net – Visual Studio 2012不发布项目
- asp.net-mvc – Mvc – 在会话中存储列表,然后检
- ASP.NET 将字节大小转换为适合阅读的格式M,G,T
- asp.net – Server.Transfer throws执行子请求时
- asp.net – 在DotNetNuke中使用jQuery UI datepi