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();
- ››ASP.NET及JS中的cookie基本用法
- ››ASP.NET获取MS SQL Server安装实例
- ››asp.net实现调用百度pai 在线翻译英文转中文
- ››ASP.NET页面选项进行提示判断
- ››Asp.net定时执行程序
- ››ASP.NET中利用DataList实现图片无缝滚动
- ››ASP.NET验证控件RequiredFieldValidator
- ››ASP.NET中使用System.Net.Mail发邮件
- ››ASP.NET中获取用户控件中控件的ID
- ››ASP.NET中FileBytes写成文件并存档
- ››asp获取毫秒数
- ››asp.net报“INSERT INTO 语句的语法错误解决
更多精彩
赞助商链接