如果您正在寻找国家和语言的默认值,只需更改默认选项,
defaults: new { country="ES", lang="es", controller = "Home", action = "Index" }
它将使用默认值填充国家和语言选项。
或者,如果您的要求是将应用程序的起始 url 设置为,
www.site.com/ES/es
将以下代码放入 Application_BeginRequest
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (String.Compare(Request.Path, Request.ApplicationPath, StringComparison.InvariantCultureIgnoreCase) == 0)
Response.Redirect(Request.Path + "ES/en");
}
编辑
Application_BeginRequest 中的代码将为每个请求执行,包括资源(js/css)url。您可以删除 Application_BeginRequest 代码并将代码放在默认控制器的默认操作中的顶部以具有相同的效果。喜欢:
//Home Controller
public ActionResult Index(string country, string lang)
{
if (String.Compare(Request.Path, Request.ApplicationPath, StringComparison.InvariantCultureIgnoreCase) == 0)
return Redirect(Request.Path + string.Format("{0}/{1}", country, lang));
return View();
}
编辑
编码,
if (String.Compare(Request.Path, Request.ApplicationPath, StringComparison.InvariantCultureIgnoreCase) == 0)
return Redirect(Request.Path + string.Format("{0}/{1}", country, lang));
检查传入的 url 是否是应用程序的根 url,如果是,则使用附加路由信息进行重定向。理想情况下,Request.Path
andRequest.ApplicationPath
都将具有/
启动 url 的价值。在这里,此检查仅在起始/默认 url 中完成,因此我认为此代码不会导致网站明显变慢。您可能会注释掉代码,并检查性能是否提高,以确保此代码是否是导致性能的原因。