ControllerBuilder()
目前定義了HomeController的兩個命名空間具有相同的優先級現在將其中一個定義在當前ControllerBuilder的默認命名空間列表中以提升匹配優先級如下面的代碼片段所示在Globalasax 的Application_Start方法中將命名空間ArtechMvcAppControllers添加到當前ControllerBuilder的DefaultNamespaces屬性所示的命名空間列表中
public class MvcApplication : SystemWebHttpApplication
{
protected void Application_Start()
{
//其他操作
ControllerBuilderCurrentDefaultNamespaces
Add(ArtechMvcAppControllers)
}
}
對於同時匹配注冊的路由規則的兩個HomeController來說由於ArtechMvcAppControllers命名空間具有更高的匹配優先級所有定義其中的HomeController會被選用這可以通過如圖所示的運行結果看出來(S)
圖 通過ControllerBuilder提升命名空間匹配優先級
為了檢驗在路由注冊時指定的命名空間和作為當前ControllerBuilder的命名空間哪個具有更高匹配優先級修改定義在App_Start/RouteConfigcs中的路由注冊代碼如下面的代碼片段所示在調用RouteTable的靜態屬性Routes的MapRoute方法進行路由注冊的時候指定了命名空間(ArtechMvcApp)
[] []
From:http://tw.wingwit.com/Article/program/net/201311/16091.html