我在我的视图中验证了我的奇怪行为。MVC3属性验证问题
我的模特拥有此属性。
[Display(Name = "Overflow Capacity")]
[RegularExpression(@"[-+]?[0-9]*\.?[0-9]?[0-9]", ErrorMessage = "Number required.")]
[Range(0,9999.99,ErrorMessage = "Value must be between 0 - 9,999.99")]
public decimal OverFlowCapacity { get; set; }
我的看法有这样的:
<tr>
<td>@Html.LabelFor(m=> m.OverFlowCapacity)</td>
<td>@Html.EditorFor(m=>m.OverFlowCapacity)</td>
<td> @Html.ValidationMessageFor(model => model.OverFlowCapacity)</td>
</tr>
如果我进入像“ABC”的值,我得到“所需数量” 确认消息。如果我输入的999999值,我得到的验证消息“值必须介于0 - 9,999.99之间'
这两个消息都是在我按预期方式标签出文本框时收到的。 当我将文本框的值保留空白并关闭标签时,我无法获得正常预期的错误。
但是,当我提交时,我收到一条验证消息'需要溢出容量字段'。
我不知道这是从哪里来的。我尝试从模型中删除所有验证属性,并仍然获得“必需”消息。我很茫然。
这里是我引用的脚本。
我有mvcfoolproof其他问题,我以后可能会发布。我想知道这是不是对我的问题负责。
恕我直言只需要的属性将使没有差异的错误消息,因为你不重写它 –
谢谢亚历山大。我对MVC相当陌生,所以有时甚至是明显的逃脱我。我只在阅读答案的前两行后才知道解决方案。 –
@穆罕默德你是正确的,它不会影响他已经得到的错误,但添加它会让你看到验证,一旦领域失去焦点,然后提交。我不确定杰夫是否想要这个错误,所以我把这个解决方案包括在内并将其删除。 –