天天看點

MonoRail學習筆記十:Controller和Url的對應關系

在MonoRail裡面存在Url和Controller之間的對應關系(當然,這種映射關系我們也可以修改),網上也有了一些說明,但好像不太完全。我再總結一下,有遺漏的,歡迎增加:

1、 普通方式

MonoRail學習筆記十:Controller和Url的對應關系

    public class HomeController : Controller

MonoRail學習筆記十:Controller和Url的對應關系

    {

MonoRail學習筆記十:Controller和Url的對應關系

        public void Index()

MonoRail學習筆記十:Controller和Url的對應關系

        {

MonoRail學習筆記十:Controller和Url的對應關系

        }

MonoRail學習筆記十:Controller和Url的對應關系

    }

對應的是:http://***/home/index.rails, vm檔案對應views/home/index.vm

2、 ControllerDetails方式

MonoRail學習筆記十:Controller和Url的對應關系

    [ControllerDetails("Extended2")]

MonoRail學習筆記十:Controller和Url的對應關系

    public class ExtendedController : Controller

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

        public void Save()

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

            throw new Exception();

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

對應的是:http://***/Extended2/Save.rails, vm檔案對應views/Extended2/Save.vm

3、 Area方式

MonoRail學習筆記十:Controller和Url的對應關系

    [ControllerDetails(Area="subarea")]

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

4、 Default動作

可以設定:

MonoRail學習筆記十:Controller和Url的對應關系

    [DefaultAction("Index")]

MonoRail學習筆記十:Controller和Url的對應關系

    public class ServletController : Controller

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

        public void Index(int id, string name, int age, DateTime birthday)

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

 }

那麼當所有通路http://***/servlet/aa.rails時,當ServletController中沒有對應方法時,都會自動執行Index方法 (vm檔案對應views/servlet/aa.vm)

5、 動态動作

MonoRail學習筆記十:Controller和Url的對應關系

    [DynamicActionProvider( typeof(DynamicActionProvider1) )]

MonoRail學習筆記十:Controller和Url的對應關系

    public class DynController : Controller

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

    public class DynamicActionProvider1 : IDynamicActionProvider

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

        public void IncludeActions(Controller controller)

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

            controller.DynamicActions["index"] = new IndexDynamicAction();

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

    public class IndexDynamicAction : IDynamicAction

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

        public void Execute(Controller controller)

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

            controller.PropertyBag.Add("message", "hello!");

MonoRail學習筆記十:Controller和Url的對應關系
MonoRail學習筆記十:Controller和Url的對應關系

那麼對于某一個action在很多Controller中都會用到的情況,就可以把這個action定義在DynamicAction中

   本文轉自永春部落格園部落格,原文連結:http://www.cnblogs.com/firstyi/archive/2007/10/26/939057.html,如需轉載請自行聯系原作者

繼續閱讀