在我看来(aspx)
Html.ValidationMessage("FirstName")
返回
<span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>
即使
ViewContext.ViewData.ModelState.Values
中没有FirstName的条目。
如果我打电话
Html.ValidationSummary()
什么都没有。
发生了什么事?我应该在哪里寻找这些价值观?
这是我视图的初始加载,所以不应该显示任何验证消息。 如何停止显示此不需要的消息?。如果我提交页面,那么ViewContext.ViewData.ModelState.Values
会填充我期望的内容。任何指针都赞赏。
答案 0 :(得分:2)
这是正确的功能。验证消息的类别为class="field-validation-valid"
,重要位是有效。如果您使表单无效,您将看到跨度将更改为:
<span class="field-validation-error" data-valmsg-replace="true" data-valmsg-for="Destination.DestinationText">
<span class="" for="Destination_DestinationText" generated="true">The DestinationText field is required.</span>
</span>
注意class="field-validation-error"
。
答案 1 :(得分:0)
这些数据属性用于使用jQuery执行客户端验证。添加MVC验证属性(如Required
或Range(0,2)
)时,会自动添加属性。您的字段上的属性不会使该字段无效。对于无效状态,将删除css类field-validation-valid
类,并应用css类field-validation-error
。为了防止生成数据属性,您可以禁用显然具有效果的JavaScript。我会保持原样并且知道一切都很好是安全的。)