MVC不需要ViewModel上的双重属性导致问题

本文关键字:属性 问题 不需要 ViewModel MVC | 更新日期: 2023-09-27 17:49:01

我有一个ViewModel的属性,其类型是Double。属性没有[Required]属性,但在前端验证希望它有一个值。需要明确的是,这捕获了车辆在几天后的状况,有时它是一辆新车,没有服务记录。

c#:

[Display( Name = "Last Service was on KILOs" )]
public Double LastServiceMileage { get; set; }
HTML:

<input class="input-validation-error" data-val="true" data-val-number="The field Last Service was on KILOs must be a number." data-val-required="The Last Service was on KILOs field is required." id="LastServiceMileage" name="LastServiceMileage" placeholder="On Kilo's" value="0" type="text">
<span class="field-validation-error" data-valmsg-for="LastServiceMileage" data-valmsg-replace="true"><span class="" generated="true" for="LastServiceMileage">The Last Service was on KILOs field is required.</span></span>

可以看到,它生成了一个输入字段,其中包含[data-val-number]和[data-val-required]。我猜它只应该有[data-val-number],如果有人在字段中输入值,它应该只验证数字。有人知道我怎么能使它不验证这个非必需的领域?

MVC不需要ViewModel上的双重属性导致问题

尝试将此添加到您的Application_Start

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;