如何禁用MVC中的某些列或属性验证?

时间:2019-01-08 17:52:28

标签: c# asp.net-mvc validation

我要创建两个视图,一个视图要进行所有属性验证,而第二个视图我要进行一些属性验证。 如何为其他视图禁用验证?

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; }
    }
  

第一个视图我要进行所有验证,但仅第二个视图年份验证   其他忽略。

1 个答案:

答案 0 :(得分:-1)

您可以使用IsValidField方法仅检查Years字段,如下所示:

<library>
<name>The XML Institute Public Library</name>
<endowment>
<donor>IBM</donor>
<book isbn="0764547607">
<title>The XML Bible, 2nd Edition</title>
</book>
<book isbn="0321150406">
<title>Effective XML</title>
</book>
</endowment>
<endowment>
<donor>W3C</donor>
<book isbn="1861005946">
<title>Beginning XSLT</title>
</book>
</endowment>

如果您需要验证更多字段,只需使用和运算符,如下所示:

if (ModelState.IsValidField("Years"))
{
//do something...
}

要验证属性列表并忽略其他属性,可以在Action方法中执行以下操作:

if (ModelState.IsValidField("Years") && ModelState.IsValidField("Remark"))
{
//do something...
}