我有一个疑问
要使用这句话:filterContext.RouteData.Values["MyRouteValue"]
应该在路由表中的Route中声明密钥吗?
我的意思是,应该在路由表中输入以下内容:{MyRouteValue}/
如果我有一个类似/ Controller / Action?MyRouteValue = XXXXXXX的请求,我从filterContext.RouteData.Values["MyRouteValue"]
中获取了null。这意味着如果我想获取值,则必须使用filterContext.Controller.ValueProvider.GetValue(“publicationUrlTitle”)。AttemptedValue代替?
提前致谢。
问候。
何塞
最佳答案
是。
是的,请使用ValueProvider
或从filterContext.HttpContext.Request["MyRouteValue"]
读取它。使用ValueProvider的优点是它可以在许多地方查找:路由数据,GET查询字符串参数,POST参数,自定义值提供程序,例如ASP.NET MVC 3中的JSON值提供程序,...
当您访问.AttemptedValue
属性时请小心,因为如果找不到NRE
,则可能会得到MyRouteValue
。
关于asp.net-mvc - 关于Asp.net MVC3上RouteData和ValueProvider的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6998809/