我开始使用MVC 2,我想知道验证摘要是如何工作的?我认为它类似于ASP.NET Web表单验证摘要控件。首先,我正在进行简单的验证,需要哪些.js文件?
<script src="<%= Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>" type="text/javascript"></script>
我目前的代码如下:
<%: Html.TextBoxFor(model => model.ApplicationState) %>
<%: Html.ValidationMessageFor(model => model.ApplicationState) %>
我正在使用自己的样式,我希望文本以红色显示。目前它是黑色的。如果我去查看源代码,那么正在使用的类是字段验证有效的,还有一个字段验证错误样式。这个课什么时候用?如果显示我的错误,则使用的样式为字段验证有效。
我应该创建自己的样式,称为field-validation-valid或field-validation-error,并将文本设为红色?
感谢。
答案 0 :(得分:3)
是的,您必须将错误样式添加到.css中。如果您使用示例帐户/家庭控制器创建新的MVC 2应用程序,您可以看到为Site.css
.field-validation-error
{
color: #ff0000;
}
.field-validation-valid
{
display: none;
}
.input-validation-error
{
border: 1px solid #ff0000 !important;
background-color: #ffeeee !important;
}
.validation-summary-errors
{
font-weight: bold;
color: #ff0000;
}
.validation-summary-valid
{
display: none;
}
这些是默认值。显然你可以进一步定制它们。
关于你的第一个问题:所有这些脚本文件都是必需的。
答案 1 :(得分:1)
只有在您需要客户端验证时才需要javascript文件。即使这样,你也不必使用微软的ajax。您也可以使用jQuery验证来完成它。
如果要为验证助手方法提供自己的类,可以使用过载:
<%= Html.ValidationMessageFor( m => m.ApplicationState, "Error Message", new { @class = "error-class" }) %>
如果要包含验证摘要(如ASP.net验证测试控件),那么还有一个辅助方法:
<%= Html.ValidationSummary() %>
该方法有许多重载,因此请查看文档以了解您要使用哪个。
答案 2 :(得分:0)
由于厌恶我使用皮肤,如果您创建皮肤文件并使用它,它将更改所有渲染控件以使用红色前色,或将其更改为您想要的任何内容,以便您可以进行所有验证再次变红,无需编辑所有单个控件。设置CSSClass将覆盖控件上设置的任何类,这通常是错误的。
在皮肤文件中:
<asp:CustomValidator runat="server" ForeColor="Red" />
<asp:RequiredFieldValidator runat="server" ForeColor="Red" />
<asp:CompareValidator runat="server" ForeColor="Red" />
<asp:RangeValidator runat="server" ForeColor="Red" />
<asp:RegularExpressionValidator runat="server" ForeColor="Red" />
<asp:ValidationSummary runat="server" ForeColor="Red" />