WEB开发网
开发学院WEB开发ASP.NET ASP.NET MVC路由扩展:路由映射 阅读

ASP.NET MVC路由扩展:路由映射

 2012-03-26 11:39:19 来源:WEB开发网   
核心提示: 对于针对定义在某个Controller中的某个Action的请求,如果注册的路由表与之匹配,ASP.NET MVC路由扩展:路由映射(2),具体匹配的某个路由对象的GetRouteData被调用并返回一个具体的RouteData对象,根据对请求地址进行解析得到的目标Controller和Action的名称必须包含在该
 
对于针对定义在某个Controller中的某个Action的请求,如果注册的路由表与之匹配,具体匹配的某个路由对象的GetRouteData被调用并返回一个具体的RouteData对象。根据对请求地址进行解析得到的目标Controller和Action的名称必须包含在该RouteData的Values属性对应的RouteValueDictionary对象中,其对应的Key分别为controller和action。
 
二、 实例演示:注册路由映射与查看路由信息
ASP.NET MVC通过定义在RouteCollectionExtensions中的扩展方法MapRoute进行路由映射,为了让读者对此有一个深刻的认识,我们来进行一个简单的实例演示。我们依然沿用之前关于获取天气信息的场景,看看通过这种方式进行注册的Route对象针对匹配的HTTP请求返回怎样的RouteData对象。[源代码从这里下载]
 
我们在创建的ASP.NET Web应用(不是ASP.NET MVC应用)添加一个Web页面(Default.aspx),并按照之前的方式以内联代码的方式直接将RouteData的相关属性显示出来,页面主体部分的HTML如下所示。需要注意的是我们显示的RouteData是从定义的方法GetRouteData方法获取的,而不是对应于当前页面的RouteData属性。
 
 <body>
    <form id="form1" runat="server">
     <div>
        <table>
            <tr>
                <td>Route:</td>
                 <td><%=GetRouteData().Route != null? GetRouteData().Route.GetType().FullName:"" %></td>
             </tr>
             <tr>
                 <td>RouteHandler:</td>
                 <td><%=GetRouteData().RouteHandler != null? GetRouteData().RouteHandler.GetType().FullName:"" %></td>
             </tr>
             <tr>
                 <td>Values:</td>
                  <td>
                     <ul>
                         <%foreach (var variable in GetRouteData().Values)
                            {%>
                         <li><%=variable.Key%>=<%=variable.Value%></li>
                           <% }%>
                      </ul>

上一页  1 2 3 4 5 6 7  下一页

Tags:ASP NET MVC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接