1

在我看来 (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我的预期填充。任何指针表示赞赏。

4

2 回答 2

2

那是正确的功能。验证消息有一个类中class="field-validation-valid"的重要位是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".

于 2012-09-28T09:06:00.350 回答
0

这些数据属性用于使用 jQuery 执行客户端验证。当您添加 MVC 验证属性时,RequiredRange(0,2)属性会自动添加。您字段上的属性不会使该字段无效。对于无效状态,field-validation-valid移除 css 类field-validation-error并应用 css 类。为了防止生成数据属性,您可以禁用显然具有连锁反应的 JavaScript。我会原样离开,并且知道一切都很好:)

于 2012-09-28T09:06:11.147 回答