MonoRail学习笔记十:Controller和Url的对应关系

本文详细介绍了MonoRail框架中URL与控制器之间的映射规则,包括普通方式、ControllerDetails方式、Area方式等,并展示了如何通过不同注解实现特定的路由映射。

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

在MonoRail里面存在Url和Controller之间的对应关系(当然,这种映射关系我们也可以修改),网上也有了一些说明,但好像不太完全。我再总结一下,有遗漏的,欢迎增加:
1、普通方式

publicclass HomeController:Controller
{
publicvoid
Index()
{
}

}

对应的是:http://***/home/index.rails, vm文件对应views/home/index.vm

2、ControllerDetails方式

[ControllerDetails("Extended2" )]
publicclass
ExtendedController:Controller
{
publicvoid
Save()
{
thrownew
Exception();
}

}

对应的是:http://***/Extended2/Save.rails, vm文件对应views/Extended2/Save.vm

3、Area方式

[ControllerDetails(Area = " subarea " )]
public class HomeController:Controller
{
publicvoidIndex()
{

}

}

对应的是:http://****/subarea/home/Index.rails, vm文件对应views/subarea/home/Index.vm

4、Default动作
可以设置:

[DefaultAction( " Index " )]
public class ServletController:Controller
{
publicvoidIndex(intid,stringname,intage,DateTimebirthday)
{
}

}

那么当所有访问http://***/servlet/aa.rails时,当ServletController中没有对应方法时,都会自动执行Index方法 (vm文件对应views/servlet/aa.vm)

5、动态动作

[DynamicActionProvider( typeof (DynamicActionProvider1))]
publicclass DynController:Controller
{

}

publicclass DynamicActionProvider1:IDynamicActionProvider
{
publicvoidIncludeActions(Controllercontroller)
{
controller.DynamicActions[
"index"]=newIndexDynamicAction();
}

}

publicclass IndexDynamicAction:IDynamicAction
{
publicvoidExecute(Controllercontroller)
{
controller.PropertyBag.Add(
"message","hello!");
}

}

对应的是:http://****/dyn/Index.rails, vm文件对应views/dyn/Index.vm
那么对于某一个action在很多Controller中都会用到的情况,就可以把这个action定义在DynamicAction中

对应的是:http://****/dyn/Index.rails, vm文件对应views/dyn/Index.vm
那么对于某一个action在很多Controller中都会用到的情况,就可以把这个action定义在DynamicAction中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值