C#的MVC寻找对应的控制器首先是寻找当前域的
如果找不到就会寻找备用的..
但是有些时候我们是不想他去寻找备用的控制器.
这里就涉及到了一个DataToken
复制代码 代码如下:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "Reader.Controllers" }
);
我第一次是使用new string来区分,可惜他还是会去寻找.我翻阅了一些资料之后
发现如果要取消备用控制器需要这么写
复制代码 代码如下:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "Reader.Controllers" }
).DataTokens["UseNamespaceFallBack"]=false;
这样我们就取消的使用备用控制器的操作了.
另外备份一下MVC的一些公约
复制代码 代码如下:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//db.ContextOptions.LazyLoadingEnabled = false;
//db.ContextOptions.ProxyCreationEnabled = false;
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//移除复数表名的契约
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
base.OnModelCreating(modelBuilder);
}