我有一个疑问

要使用这句话: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/

10-15 14:02