【问题标题】:MVC 2 Validation and SummariesMVC 2 验证和总结
【发布时间】:2010-09-10 13:24:59
【问题描述】:

我从 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 样式。什么时候使用这个类?如果显示我的错误,则使用的样式是 field-validation-valid。

我应该去创建自己的样式,称为 field-validation-valid 或 field-validation-error 并将文本设为红色吗?

谢谢。

【问题讨论】:

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


    【解决方案1】:

    是的,您必须将错误样式添加到您的 .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;
    }
    

    这些是默认设置。显然,您可以进一步自定义它们。

    关于您的第一个问题:所有这些脚本文件都是必需的。

    【讨论】:

      【解决方案2】:

      仅当您需要客户端验证时才需要 javascript 文件。即使那样,您也不必使用 microsoft ajax 的。您也可以使用 jQuery 验证来完成。

      如果你想为验证辅助方法提供你自己的类,你可以使用一个重载:

      <%= Html.ValidationMessageFor( m => m.ApplicationState, "Error Message", new { @class = "error-class" }) %>
      

      如果您想包含验证摘要(如 ASP.net 验证摘要控件),那么还有一个帮助方法:

      <%= Html.ValidationSummary() %>
      

      该方法有许多重载,因此只需查看文档以了解您要使用哪一个。

      【讨论】:

      • 我的验证消息根本没有显示。我创建了一个新网站,并使用了自己的样式。
      【解决方案3】:

      虽然我很讨厌使用皮肤,但如果你创建一个皮肤文件并使用它,它会将你所有渲染的控件更改为使用红色前景色,或者将其更改为你想要的任何颜色,这样你就可以进行所有验证再次变为红色,而无需编辑所有单独的控件。设置 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" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-20
        • 1970-01-01
        • 2011-01-12
        相关资源
        最近更新 更多