C# 如何在mvc中禁用某些列或属性验证?
我想要创建两个视图,一个视图所有属性验证,但第二个视图我想要一些属性验证。 如何禁用其他视图的验证?C# 如何在mvc中禁用某些列或属性验证?,c#,asp.net-mvc,validation,C#,Asp.net Mvc,Validation,我想要创建两个视图,一个视图所有属性验证,但第二个视图我想要一些属性验证。 如何禁用其他视图的验证? public partial class Car_Property { [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] public Car_Property()
public partial class Car_Property
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Car_Property()
{
this.Cars = new HashSet<Car>();
}
public long ID { get; set; }
[Required]
public Nullable<long> Model { get; set; }
[Required]
public Nullable<int> Years { get; set; }
[Required]
public string Remark { get; set; }
public virtual Model Model1 { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Car> Cars { get; set; }
}
公共部分类汽车物业
{
[System.Diagnostics.CodeAnalysis.SuppressMessage(“Microsoft.Usage”,“CA2214:DoNotCallOverridableMethodsInConstructors”)]
公共汽车物业()
{
this.Cars=newhashset();
}
公共长ID{get;set;}
[必需]
公共可空模型{get;set;}
[必需]
公共可空年份{get;set;}
[必需]
公共字符串备注{get;set;}
公共虚拟模型Model1{get;set;}
[System.Diagnostics.CodeAnalysis.SuppressMessage(“Microsoft.Usage”,“CA2227:CollectionPropertiesShouldBreadOnly”)]
公共虚拟ICollection Cars{get;set;}
}
第一个视图我需要所有验证,但第二个视图只需要年份验证
其他人则不予理睬
您可以使用IsValidField方法仅检查年份字段,如下所示:
if (ModelState.IsValidField("Years"))
{
//do something...
}
if (ModelState.IsValidField("Years") && ModelState.IsValidField("Remark"))
{
//do something...
}
如果需要验证更多字段,只需使用and运算符,如下所示:
if (ModelState.IsValidField("Years"))
{
//do something...
}
if (ModelState.IsValidField("Years") && ModelState.IsValidField("Remark"))
{
//do something...
}
要验证属性列表并忽略其他属性,可以在操作方法中执行以下操作:
List<string> validationProperties = new List<string> { "Years"};
bool isValid = true;
foreach (PropertyInfo propertyInfo in model.GetType().GetProperties())
{
if (validationProperties .Contains(propertyInfo.Name))
isValid = ModelState.IsValidField(propertyInfo.Name) && isValid;
}
if (isValid)
{
// do stuff here
}
List validationProperties=新列表{“年”};
bool isValid=true;
foreach(模型中的PropertyInfo PropertyInfo.GetType().GetProperties())
{
if(validationProperties.Contains(propertyInfo.Name))
isValid=ModelState.IsValidField(propertyInfo.Name)&&isValid;
}
如果(有效)
{
//在这里做事
}
您可以根据视图而不是模型使用jquery应用验证。@Hp\u issei您是说客户端验证吗?是的。客户端验证。我需要服务站点验证。然后您可以创建两个具有相同属性但不同验证属性的模型,并根据视图使用