vici mvc开发第四篇——Url映射

本文介绍Vici MVC框架中的URL映射机制,包括手动添加映射、默认路由、URL验证及使用[Url]属性的方法。通过这些机制,开发者能够更加灵活地控制URL与控制器之间的映射关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在vici mvc v2.0中,一个灵活地url映射机制是非常有必要的,因为它能让你把任何url映射到任何控制器(Controller),也可以在URL中添加参数传递。

    url映射设置有下面俩种方法:

    1、在Application's Init()方法中添加映射关系

    2、在控制器类或者方法上添加[url]属性

一、Adding entries to the routing table manually

     在Application's Init()方法中添加映射关系首先需要调用WebAppConfig.Router对象的AddRoute()方法

     例如:

    

    你可以在URL中插入标记{{tagname }},然后你就可以在控制器类,方法,或者参数中重复使用这些标记。

    在上面的例子中,映射关系如下:

   

    (the last 3 routes are default routes, explained below)

    下面这些是映射到控制器类或者方法的简单例子:

   

二、 Default routes

    可以通过WebAppConfig.Router.AddDefaultRoutes()方法添加一些默认映射到映射表。该方法需要知道page的扩展。例如,如果你要调用AddDefaultRoutes("aspx"),默认的映射为:

   

    在以下的缺省路由传递空的扩展或空的结果:

   

三、 URL validation

    它是可以使用正则表达式 验证 Url,例如:

    WebAppConfig.Router.AddRoute("product/{id}" ,"Products" ,"Details" );

    怎样才能让{id}一直是数字呢?方法就是在映射表中添加RouteValidator

   

    默认情况下,如果映射关系验证失败,映射器会继续检查其他的映射,在上面的例子中,那也许不是我们愿意见到的。你可以在 RouteValidationAction中定义俩个参数。第一个参数是通过验证时执行的操作,第二个参数是失败时的操作。

    RouteValidationAction枚举可以是以下值:

   

   none是通过验证时的默认操作,Skip是验证失败时的操作

    为了得到我们想要的结果,我们可以稍微改动以上例子:

   

五、Using the [Url] attribute

    除了在 WebAppConfig.Router中添加映射关系,我们还可以在控制器类或者方法中添加:

   

    在上面的例子中,他会这样添加到映射表中:

   

    "~/products/overview"将会映射到Overview()方法和Products控制器类。

    你也可以一次定义多个[url]

         

    在上面的例子中,他会这样添加到映射表中:

   

    下面是一些定义映射关系时的限制:

    1、跟使用 AddRoute()方法不一样,你不能指定额外的参数。

    2、你不能指定正则表达式

    3、映射关系的检查顺序没有定义,然而通过属性定义映射关系要优先于Router.AddRoute方法

 

未完待续:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值