【问题标题】:Adding class to ValidationSummary将类添加到 ValidationSummary
【发布时间】:2016-09-22 04:59:20
【问题描述】:

显然unobtrusive jsModelState 错误不能同时出现。我想要完成的是两件事。当出现ModelState 或客户端错误时,将由validation-summary-errors 类显示。

我遇到的问题是,而不是使用助手,

<div class="validation-summary-errors" data-valmsg-summary="true">
    <ul style="list-style-type:none;"></ul>
</div>

它不会显示ModelState 错误因此我尝试使用以下代码,

代码:

if (!ViewData.ModelState.IsValid)
{
   <div class="validation-summary-errors" data-valmsg-summary="true">
       <ul style="list-style-type:none;"></ul>
   </div>
}
else
{
   @Html.ValidationSummary()
}

但是由于助手的原因,我无法格式化输出(就像从列表中删除项目符号一样)!

这里是 javascript:

 $(document).ready(function () {
     $('form').each(function () {
         var theForm = $(this);
         theForm.submit(function () {
             if ($(this).valid()) {
                 if ($(this).find('.validation-summary-valid').length) {
                     $('.validation-summary-errors').hide();
                 }
             } else {
                 if ($(this).find('.validation-summary-errors').length) {
                     $('.validation-summary-errors')
                         .addClass('alert alert-danger');
                 }
             }
         });
     });
 });

【问题讨论】:

  • 您只需要@Html.ValidationSummary() 并删除您的脚本(建议您访问 MVC 站点并阅读教程以了解验证的基础知识 - 您问题中的第一句话是错误的)跨度>

标签: javascript c# jquery css asp.net-mvc


【解决方案1】:

使用这个

@Html.ValidationSummary(true, "", new { @class = "validation-summary-errors" })

【讨论】:

    【解决方案2】:

    不显眼和模型状态可以很好地结合在一起。

    您已将视图硬编码为在验证失败时显示一个空列表,并且仅在验证成功时使用 Razor 助手,因此它将始终显示一个空列表。

    只需使用 @Html.ValidationSummary() 而不使用 if 块。模型有效则自动为空。

    如果没有按预期显示模型验证消息,请在控制器中的 if (ModelState.IsValid) 上设置断点并检查模型。然后检查您的数据注释。出于调试目的,您可以手动添加模型状态错误ModelSatate.AddModelError("fieldname", "This field has an error");,以证明 Razor 助手正在工作。

    【讨论】:

      【解决方案3】:

      感谢您的意见。 我最终删除了 ValidationSummary() 的 if 语句。为了处理我最终做的事情,添加第二个类似于上面显示的小脚本,但用于 window.onload 事件。这样,它会在上面处理突兀的情况时捕获 ModelState 错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-04
        • 2019-03-20
        • 2015-06-17
        • 2020-10-23
        • 2015-02-10
        • 2015-11-25
        • 2011-12-31
        • 2011-07-16
        相关资源
        最近更新 更多