Asp.net mvc 3 Asp.Net MVC-检查Url中的路由值
问题是关于我网站的主页。 该网站本地化为两种语言,默认语言为IT,备选语言为EN 我的主页是:Asp.net mvc 3 Asp.Net MVC-检查Url中的路由值,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc 3,Asp.net Mvc Routing,问题是关于我网站的主页。 该网站本地化为两种语言,默认语言为IT,备选语言为EN 我的主页是: www.mysite.com 选择英语时,地址为: www.mysite.com/en {language}参数位于myRoutedData中 当然,如果我键入www.mysite.com/it,它会工作,这与www.mysite.com 我要做的是,在我的操作方法中,检查'it'字符串是否存在于url中,如果存在,则直接指向www.mysite.com地址 我可以通过搜索Request.RawU
www.mysite.com
选择英语时,地址为:
www.mysite.com/en
{language}
参数位于myRoutedData
中
当然,如果我键入www.mysite.com/it
,它会工作,这与www.mysite.com
我要做的是,在我的操作方法中,检查'it'
字符串是否存在于url中,如果存在,则直接指向www.mysite.com
地址
我可以通过搜索Request.RawUrl
字符串来实现这一点,但我想知道是否有更好的方法来实现这一点
谢谢您可以使用模型绑定来实现这一点-只需将参数添加到您的操作中即可。请注意,在这种情况下,
language
参数也可以从查询字符串或表单值中提取其值,前提是它不会出现在url中
public ActionResult Index(string language)
{
if (string.IsNullOrWhiteSpace(language))
{
///
}
return View();
}
或者,手动提取路线值。在你的行动中
string language = RouteData.Values["language"].ToString();
if (string.IsNullOrWhiteSpace(language))
{
///
}
我知道ModelBinding或RoutedData集合,但这不是我的情况。My RoutedData始终包含Language参数,EN值是默认值,因此如果地址仅为www.mysite.com,则EN值在RoutedData中。我需要的是检查EN值是否在Url字符串中,也许我只能检查字符串。