ASP.从类中访问路由参数
本文关键字:路由 参数 访问 ASP | 更新日期: 2023-09-27 18:07:07
我正在构建一个小型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)
{
}
}
在扩展方法中,我想获得路由中定义的语言参数。
是否有办法得到这些参数?我知道在控制器内部,我可以在动作方法中获得它们作为参数-但这不是我在这种情况下想要的-我想把它放在一个与控制器无关的类中。
谢谢
您仍然可以从helper中的请求上下文访问所有内容,并且不需要将路径作为参数传递,只需从路由数据中获取它!
最简单的方法:
public static class LanguageLiteralExtension
{
public static string LanguageLiteral(this HtmlHelper helper)
{
return helper.ViewContext.RequestContext.RouteData.Values["language"].ToString();
}
}
不要忘记将命名空间添加到Web。