【发布时间】:2013-03-29 02:56:29
【问题描述】:
我最近将我的 mvc3 本地化结构从 lang 作为子域 (fr.domain.com) 转换为 lang 作为路径 (domain.com/fr)。
一切正常,但自动重定向到帐户登录。
假设我没有通过身份验证,我尝试访问 domain.com/fr/test 我被重定向到 domain.com/Account/LogOn?ReturnUrl...
如何配置我的网站以便重定向到 /fr/Account/LogOn?ReturnUrl...
编辑:
我使用路由映射
routes.MapRoute(
"DefaultLocalized", // Route name
"{lang}/{controller}/{action}/{id}", // URL with parameters
new { lang = "en", controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
, new { lang = "fr" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
解决方案: 这是我根据developer10214的建议实现的解决方案
public ActionResult LogOn()
{
if (System.Web.HttpContext.Current.Request.Url.Query.Contains("%2ffr%2f") && System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName != "fr")
return Redirect("/fr/Account/LogOn" + System.Web.HttpContext.Current.Request.Url.Query);
LogOnModel model = new LogOnModel() { UserName = "", Password = "" };
return View(model);
}
【问题讨论】:
-
了解您如何对本地化(路线图、区域)进行更改会很有用。