学习ASP.NET MVC5框架揭秘笔记-ASP.NET路由(五)

本文介绍了在路由机制中VirtualPathData的作用及其属性。当通过RouteBase的GetVirtualPath方法生成虚拟路径时,VirtualPathData用于封装生成的虚拟路径及相关的Route信息。
摘要由CSDN通过智能技术生成

3VirtualPathDath

介绍完GetRouteData方法的返回类型RouteData之后,我们接着介绍一下RouteBaseGetVirtualPath方法的返回类型VirtualPathData。当RouteBaseGetVirtualPath方法被执行的时候,如果定义在路由模板中的变量与指定变量列表相匹配,它会使用指定的路由变量值去替换路由模板中对应的占位符并生成一个虚拟路径。生成的虚拟路径与Route对象最终被封装成一个VirtualPathData对象作为返回值,他们对应着这个返回的VirtualPathData对象的VirtualPathRoute属性。VirtualPathDataDataTokens属性和RouteData的同名属性一样都是来源于附加到Route对象的自定义变量集合。

public class VirtualPathData
{
public VirtualPathData(RouteBase route, string virtualPath);
public RouteValueDictionary DataTokens { get; }
public RouteBase Route { set; get; }
public string VirtualPath { set; get; }
}

RouteBaseGetVirtualPath方法具有一个类型为RequestContext的参数,一个RequestContext对象表示针对某个请求的上下文。从如下的代码片段中不难看出它实际上是对HTTP上下文和RouteData的封装。

public class RequestContext
{
public RequestContext(HttpContextBase httpContext,RouteData routeData);
public RequestContext();
public virtual HttpContextBase HttpContext { set; get; }
public virtual RouteData RouteData { set; get; }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值