C# 4.0 如何为不同语言的MVC编写友好的url#
我需要你的帮助,以了解我如何有一个法语和英语的URL重定向到MVC4中的同一个控制器 换句话说,我有一个控制器专业,它有一个控制器选项C# 4.0 如何为不同语言的MVC编写友好的url#,c#-4.0,asp.net-mvc-4,seo,custom-routes,C# 4.0,Asp.net Mvc 4,Seo,Custom Routes,我需要你的帮助,以了解我如何有一个法语和英语的URL重定向到MVC4中的同一个控制器 换句话说,我有一个控制器专业,它有一个控制器选项 所以我们可以通过http://{domainname}/Speciality/MoreOption访问这个控制器。现在我需要用法语http://{domainname}/nos specialites/options supplementairs访问这个控制器。我不需要编写其他控制器类,因为它与我用于显示该页面的代码相同。事实上,如果我理解正确,这非常简单 您只
所以我们可以通过http://{domainname}/Speciality/MoreOption访问这个控制器。现在我需要用法语http://{domainname}/nos specialites/options supplementairs访问这个控制器。我不需要编写其他控制器类,因为它与我用于显示该页面的代码相同。事实上,如果我理解正确,这非常简单 您只有两种动作方法,一种是英语,另一种是法语,它们在同一个控制器中加载同一个模型。但是,如果同一控制器有两个名称,则可以通过路由配置实现这一点
routes.MapRoute(
name: "FrenchControllerName",
url: "Home/{controller}/{action}/{id}",
defaults: new {area="Home",controller = "EnglishControllerName", action = "Index", id = UrlParameter.Optional }
);
我希望我不是第一个尝试这样做的人……我真的没有办法解决你的问题,但我想指出的是,你应该小心,不同的页面不会被谷歌视为重复内容,然后受到惩罚。我建议您在页面中添加规范URL标记,指定哪个页面是权威页面。@QuetiMporta:当我们使用CMS时,我们可以选择重命名每个页面的URL。我想我们可以在.NET MVC4中实现这一点??谢谢@Gref,我发现这有助于我了解更多信息。:)
routes.MapRoute(
name: "FrenchControllerName",
url: "Home/{controller}/{action}/{id}",
defaults: new {area="Home",controller = "EnglishControllerName", action = "Index", id = UrlParameter.Optional }
);