MVC 2验证和摘要

时间:2010-09-10 13:25:00

标签: asp.net asp.net-mvc validation

我开始使用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,并将文本设为红色?

感谢。

3 个答案:

答案 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" />