zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#如何在MVC3中取消备用控制器的选择

c# 如何 选择 取消 控制器 备用 mvc3
2023-06-13 09:14:52 时间

C#的MVC寻找对应的控制器首先是寻找当前域的

如果找不到就会寻找备用的..

但是有些时候我们是不想他去寻找备用的控制器.

这里就涉及到了一个DataToken

复制代码代码如下:

routes.MapRoute(
"Default",//Routename
"{controller}/{action}/{id}",//URLwithparameters
new{controller="Home",action="Index",id=UrlParameter.Optional},//Parameterdefaults
newstring[]{"Reader.Controllers"}
);

我第一次是使用newstring来区分,可惜他还是会去寻找.我翻阅了一些资料之后

发现如果要取消备用控制器需要这么写

复制代码代码如下:

routes.MapRoute(
"Default",//Routename
"{controller}/{action}/{id}",//URLwithparameters
new{controller="Home",action="Index",id=UrlParameter.Optional},//Parameterdefaults
newstring[]{"Reader.Controllers"}
).DataTokens["UseNamespaceFallBack"]=false;

这样我们就取消的使用备用控制器的操作了.


另外备份一下MVC的一些公约
复制代码代码如下:
protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder)
{
//db.ContextOptions.LazyLoadingEnabled=false;
//db.ContextOptions.ProxyCreationEnabled=false;
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//移除复数表名的契约
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
base.OnModelCreating(modelBuilder);
/*

可以删除的公约有:
Namespace:System.Data.Entity.ModelConfiguration.Conventions.Edm
•AssociationInverseDiscoveryConvention
寻找导航上互相引用的类的属性,并将它们配置为逆属性的相同的关系。
•ComplexTypeDiscoveryConvention
寻找有没有主键的类型,并将它们配置为复杂类型。
•DeclaredPropertyOrderingConvention
确保每个实体的主要关键属性优先于其他属性。
•ForeignKeyAssociationMultiplicityConvention
配置是必需的还是可选的关系基于为空性外键属性,如果包含在类定义中。
•IdKeyDiscoveryConvention
查找名为Id或<TypeName>Id的属性,并将他们配置作为主键。
•NavigationPropertyNameForeignKeyDiscoveryConvention
使用外键关系,使用<NavigationProperty><PrimaryKeyProperty>模式作为属性的外观。
•OneToManyCascadeDeleteConvention
交换机上层叠删除,所需的关系。
•OneToOneConstraintIntroductionConvention
将配置为一个:一个关系的外键的主键。
•PluralizingEntitySetNameConvention
配置为多元化的类型名称的实体数据模型中的实体集的名称。
•PrimaryKeyNameForeignKeyDiscoveryConvention
使用外键关系,使用<PrimaryKeyProperty>模式作为属性的外观。
•PropertyMaxLengthConvention
配置所有的字符串和字节[]属性,默认情况下具有最大长度。
•StoreGeneratedIdentityKeyConvention
配置默认情况下将标识所有整数的主键。
•TypeNameForeignKeyDiscoveryConvention
使用外键关系,使用<PrincipalTypeName><PrimaryKeyProperty>模式作为属性的外观。


*/}