ASP.NET MVC 早期版本為了相容 MonoRail 開發者,透過 MVC Contrib 擴展包提供 Castle 元件支援。雖然此擴展仍有許多 Bug,但展現了 ASP.NET MVC 的高擴展性。本文整理關鍵差異與使用重點。
\Samples\MvcContrib.Samples.NVelocityViewFactory\Controller 寫法與標準 ASP.NET MVC 相同,無需學習 MonoRail 特有語法。
Views/Shared 或各 Controller 對應的 Views/{ControllerName} 下的 Master 資料夾。Layouts 資料夾。不再使用 $Html.Link 或 $Html.Form 等 MonoRail 風格 Helper,改用 ASP.NET MVC 內建的 $Html.ActionLink 等方法。
子視圖內容插入點仍為 $childContent。
MonoRail 的 Flash 機制被移除,改用 ViewData(單一請求)與 TempData(跨重導向保留一次)傳遞資料。
雖然 Castle 整合包仍處於早期階段,但為從 MonoRail 遷移的團隊提供了過渡路徑。建議新專案直接採用原生 Razor 或 ASPX 視圖引擎,以獲得完整官方支援。