问题是关于我网站的主页。 该网站本地化为2种语言,默认语言为IT,另一种是EN。
我的主页是:
www.mysite.com
选择英语时,地址为:
www.mysite.com/en
{language}
param位于我的RouteData
。
当然,如果我输入www.mysite.com/it
它就可以了,它与www.mysite.com
我要做的是,在我的Action方法中,检查网址中是否存在'it'
字符串,如果存在,请为www.mysite.com
地址创建一个PermanentRedirect。
我可以通过搜索Request.RawUrl
字符串来完成此操作,但我想知道是否有更好的方法来执行此操作。
由于
答案 0 :(得分:0)
您可以使用模型绑定来执行此操作 - 只需将参数添加到您的操作即可。请注意,在这种情况下,language
参数也可以从查询字符串或表单值中提取其值,但前提是它不会出现在url中。
public ActionResult Index(string language)
{
if (string.IsNullOrWhiteSpace(language))
{
///
}
return View();
}
或者替代方式,手动提取路线值。在你的行动中
string language = RouteData.Values["language"].ToString();
if (string.IsNullOrWhiteSpace(language))
{
///
}