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)
[] []