【发布时间】:2016-06-09 19:29:34
【问题描述】:
我正在尝试在 asp.net MVC5 中创建 URL。我正在寻找的行为如下:
http://www.example.com/es/faqs ----> when language is Spanish
http://www.example.com/faqs ----> when language is english
这个 URL 的路径:
routes.MapRoute(
name: "FAQs",
url: "{lang}/FAQs",
defaults: new { controller = "StaticPages", action = "FAQs", lang= UrlParameter.Optional }
);
此 URL 以西班牙语呈现 find --> http://www.example.com/es/faqs
但我的问题是这个 url 不能正常工作 --> http://www.example.com/faqs
当我尝试访问此 URL 时,我收到一个找不到页面的错误。
在我的路由中,我试图将 lang(Language code) 设为可选,为什么我的路由在 URL 中没有语言代码时不起作用。
【问题讨论】:
-
可选参数应该是路由模板中的最后一件事。当可选参数后面有任何内容时,它将不起作用。
-
您可能想看看this answer 了解如何管理默认语言。也可以在
Route类上使用装饰器模式和/或使用自定义属性路由,这样您就不需要复制每条路由。
标签: c# asp.net-mvc asp.net-mvc-5 asp.net-mvc-routing