Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何为不同语言的MVC编写友好的url#_C# 4.0_Asp.net Mvc 4_Seo_Custom Routes - Fatal编程技术网

C# 4.0 如何为不同语言的MVC编写友好的url#

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访问这个控制器。我不需要编写其他控制器类,因为它与我用于显示该页面的代码相同。事实上,如果我理解正确,这非常简单 您只

我需要你的帮助,以了解我如何有一个法语和英语的URL重定向到MVC4中的同一个控制器

换句话说,我有一个控制器专业,它有一个控制器选项


所以我们可以通过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 }
        );