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

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

 2012-03-26 11:39:19 来源:WEB开发网   
核心提示: 6: <type>Artech.Admin.AdminAreaRegistration</type> 7: </module> 8: </assembly> 9: <assembly name="Artech.
   6:       <type>Artech.Admin.AdminAreaRegistration</type>
   7:     </module>
   8:   </assembly>
   9:   <assembly name="Artech.Portal, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
  10:     <module versionId="7b0490d4-427e-43cb-8cb5-ac1292bd4976">
  11:       <type>Artech.Portal.PortalAreaRegistration</type>
  12:     </module>
  13:   </assembly>
  14: </typeCache>
实例演示:查看基于Area路由信息
通过AreaRegistration实现的针对Area的路由注册具有一些特殊的细节差异,我们通过实例演示的方式来说明。我们直接使用前面创建的演示实例,并在项目中创建一个自定义的WeatherAreaRegistration。如下面的代码片断所示,WeatherAreaRegistration继承自抽象基类AreaRegistration,表示Area名称的AreaName属性返回“Weahter”。在实现路由注册的RegisterArea方法中我们调用AreaRegistrationContext对象的MapRoute方法注册了一个URL模版为“weather/{areacode}/{days}"的路由对象。默认变量值、约束也被相应地提供。[源代码从这里下载]
 
   1: public class WeatherAreaRegistration : AreaRegistration
   2: {
   3:     public override string AreaName
   4:     {
   5:         get { return "Weather"; }
   6:     }
   7:     public override void RegisterArea(AreaRegistrationContext context)
   8:     {
   9:         object defaults = new { areacode = "010", days = 2, defaultCity = "BeiJing", defaultDays = 2 };
  10:         object constraints = new { areacode = @"0\d{2,3}", days = @"[1-3]{1}" };
  11:         context.MapRoute("weatherDefault", "weather/{areacode}/{days}", defaults, constraints);
  12:     }
  13: }
我们在Global.asax的Application_Start方法中按照如下的方式调用AreaRegistration的静态方法RegisterAllAreas实现对所有Area的注册。按照我们在上面介绍的Area注册原理,对于第一次RegisterAllAreas方法的调用,会自动加载所有引用的程序集来获取所有的AreaRegistration(当然就包括我们上面定义的WeatherAreaRegistration),最后通过反射创建相应的对象并调用RegisterArea方法。
 
   1: public class Global : System.Web.HttpApplication
   2: {
   3:     protected void Application_Start(object sender, EventArgs e)
   4:     {
   5:         AreaRegistration.RegisterAllAreas();

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

Tags:ASP NET MVC

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