首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

ASP.NET MVC以ValueProvider为核心的值提供系统: DictionaryValueProvider

如下面的代码片断所示,基于当前Controller上下文构建的RouteDataValueProvider直接将表示当前路由数据的RouteData对象的Values属性(这是一个RouteValueDictionary...实际上,ChildActionValueProvider的GetValue方法获取的值来源于调用HtmHelper的扩展方法Action时通过参数routeValues指定的RouteValueDictionary...这个RouteValueDictionary被进一步封装成表示请求上下文的RequestContext对象,目标子Action所在的Controller会在该请求上下文中被激活,而在Controller...激活过程中表示Controller上下文的ControllerContext被创建出来,毫无疑问它包含了之前创建的RouteValueDictionary对象。...而我们针对当前Controller上下文创建ChildActionValueProvider的时候指定的作为数据源的RouteValueDictionary对象就是这么一个对象。

1.7K80

.NETASP.NET Routing路由(深入解析路由系统架构原理)

下面详细的分析每个对象的内部原理; 【RouteValueDictionary】 RouteValueDirctionary对象是在路由对象内部存放数据用的,比如:我们在配置路由的时候,可以指定一些默认值...、命名空间等等; 看RouteValueDictionary源码定义: public class RouteValueDictionary : IDictionary 该类型继承自字典接口...IDictionary,继承自字典接口而不是继承自字典基类目的只是想使用字典的行为而不是它的默认实现;在RouteValueDictionary内部使用了一个Dictionary...(); Values = new RouteValueDictionary (); } public RouteValueDictionary DataTokens { get; private...,这也刚好和我们上面分析的对上了;RouteValueDictionary是内部用来保存这些零散键值对数据容器,在Route、RouteData还有其他地方均需要用到;就是因为RouteValueDictionary

1.5K90

精通MVC3摘译(3)-自定义路由系统

GetVirtualPath(RequestContext requestContext, RouteValueDictionary values):  这是生成对外URL的工作机制。...        }         public override VirtualPathData GetVirtualPath(RequestContext requestContext,         RouteValueDictionary...public override VirtualPathData GetVirtualPath(RequestContext requestContext,RouteValueDictionary values...(1));             }             return result;         } 我们使用匿名类型传递了片段变量和其他参数,但是这背后的事情是,路由系统会将这些值转换成RouteValueDictionary..."GetLegacyURL", new { legacyURL = "~/articles/Windows 3.1 Overview.html" }) 和legacyURL属性一起生产的匿名类型转换成RouteValueDictionary

52420

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券