【发布时间】:2017-03-01 10:44:39
【问题描述】:
这是我的路线:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "defaultWithCulture",
template: "{culture=fa-IR}/{controller}/{action=Index}/{id?}");
});
但是当我使用链接时本地化工作:
http://localhost:1776/fa-IR/Home/About?culture=fa-ir
但不是什么时候
http://localhost:1776/fa-IR/Home/About
为什么路线中的文化不适用?
【问题讨论】:
-
你的路由模板应该是
template: "{culture}/{controller}/{action=Index}/{id?}");。您如何使用作为 URL 一部分的值来设置当前线程的文化? -
@ChetanRanpariya 我没有设置它。路由不应该自己做吗?
-
您想要的行为在 asp.net mvc 核心中没有开箱即用。您可能想要编写一个操作过滤器,该过滤器将从 URL 中检索区域性的路由数据值并将其设置为当前线程。
-
@ChetanRanpariya 您能否将其添加为答案并展示如何操作?
-
我之前回答过类似的问题。请参考stackoverflow.com/questions/42154050/…如果您在使用这种方法时遇到任何问题,请告诉我。
标签: c# asp.net .net asp.net-core routing