为了让读者对如何提升命名空间优先级有一个深刻的印象我们来进行一个简单的实例演示在一个ASPNET MVC应用创建两个同名的HomeController类如下面的代码片段所示这两个HomeController类分别定义在命名空间ArtechMvcApp和ArtechMvcApp Controllers之中而Index操作返回的是一个将Controller类型全名作为内容的SystemWeb MvcContentResult对象
namespace ArtechMvcAppControllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return thisContent(thisGetType()FullName)
}
}
}
namespace ArtechMvcApp
{
public class HomeController : Controller
{
public ActionResult Index()
{
return thisContent(thisGetType()FullName)
}
}
}
现在我们直接运行该Web应用由于具有多个Controller与注册的路由规则相匹配这会导致Controller激活系统无法确定哪个类型的Controller应该被选用所以会出现如图所示的错误(S)
图 具有多个匹配Controller导致的异常
返回目录ASPNET MVC 框架揭秘
编辑推荐
ASP NET开发培训视频教程
Microsoft NET框架程序设计视频教程
Java程序性能优化让你的Java程序更快更稳定
Visual C++音频/视频技术开发与实战
[] []