我有一个多语言的asp.net mvc网站,其中有两种语言土耳其语和英语。默认语言为土耳其语。
在Global.asax中,我有两个默认值,一个是默认值,一个是默认本地化的。像这样:
routes.MapRoute(
"DefaultLocalized", // Route name
"{lang}/{controller}/{action}/{id}", // URL with parameters
constraints: new { lang = @"(tr)|(en)" },
defaults: new { lang = "tr", controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
我的观点中有Html.BeginForm,如下所示:
@using (Html.BeginForm("Login","Authentication")) {
@Html.ValidationSummary(true)
@Html.AntiForgeryToken()
// SOME CODE GOES HERE
}
我将语言保存在Cookie中,也保存在Session变量中。 当语言是土耳其语时,url就像:
www.example.com/tr/Authentication/Login
当语言为英语时,url就像:
www.example.com/en/Authentication/Login
但是当我在网站上查看源代码时,表单元素始终是:
<form action="/tr/Authentication/Login" method="post">
所以它总是重定向到&#34; / tr / Authentication / Login&#34;登录失败时。
有没有办法更改表单操作网址始终与网站当前语言匹配?