![](/img/trans.png)
[英]asp.net mvc 4.6 access all route dictionary parameters and values from controller action method
[英]ASP.NET MVC - access route parameters from class
我正在建立一个多语言的ASP.NET MVC小网站,但是使用相同的代码库。 我有一个接受xPath字符串并从适当的语言xml文件读取的类。
要设置语言,我定义了以下路线:
routes.MapRoute(
name: "Multilingual",
url: "{controller}/{language}/{action}/{id}",
defaults: new { controller = "Home", language = "en", action = "Index", id = UrlParameter.Optional }
);
现在我想为Html编写一个扩展方法,该方法将接受路径字符串并返回值。
public static class LanguageLiteralExtension
{
public static string LanguageLiteral(this HtmlHelper helper, string xPath)
{
}
}
在该扩展方法中,我想获取路由中定义的language参数。
这些参数有什么办法吗? 我知道在控制器内部我可以将它们作为action方法中的参数获取-但这不是我想要的-我希望将其包含在与控制器无关的类中。
谢谢
您仍然可以在帮助程序中的请求上下文中访问所有内容,而无需将路径作为参数传递,只需从路由数据中获取它即可!
最简单的方法:
public static class LanguageLiteralExtension
{
public static string LanguageLiteral(this HtmlHelper helper)
{
return helper.ViewContext.RequestContext.RouteData.Values["language"].ToString();
}
}
不要忘记将名称空间添加到View文件夹的Web.config中,那么您就不需要在要使用名称空间的任何地方导入它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.