简短版本:为什么在data-valmsg-replace='false'
时默认情况下验证邮件是否可见?以及如何修复它?
详细信息:
在我的剃刀中我做到了:
@Html.TextArea("Description", Model.FormData.Description, new { @class="span12" })
@Html.ValidationMessage("Description", L("Description is required"))
验证消息呈现为(按预期):
<span class="field-validation-valid" data-valmsg-for="Description" data-valmsg-replace="false">Description is required</span>
页面初始渲染时和消息可见。它似乎是设计的,但没有意义(注意data-valmsg-replace='false'
)。
问题
此设计决策背后的原因是什么,具体来说,data-valmsg-replace='false'
附带默认情况下会显示错误消息?
是否有比添加.field-validation-valid { display: none; }
答案 0 :(得分:0)
我遇到了同样的问题,结果是Global.asax中的默认设置:
<add key="ClientValidationEnabled" value="false" />
<add key="UnobtrusiveJavaScriptEnabled" value="false" />
答案 1 :(得分:0)
以下帖子可能包含推测
创建ASP.NET MVC项目将遵循以下规则:
.field-validation-valid {
display: none;
}
这意味着验证错误容器将不可见OOB(在我的情况下,我未能将该规则延伸到我自己的site.css)
如果没有错误,为什么不对容器进行不显眼的验证.hide()
?
假设我希望在没有错误时将我的错误容器设置为绿色复选标记。如果unobtrusive.validation隐藏容器,那么我就不能这样做。
所以我的答案是:
.field-validation-valid { display: none; }
是合理的,也是我能想到的最佳解决方案。