【问题标题】:How to add an error message to the ModelState on MVC using Javascript?如何使用 Javascript 向 MVC 中的 ModelState 添加错误消息?
【发布时间】:2013-07-11 18:39:33
【问题描述】:

这是我的模型属性

 public ModelStateDictionary modelSateClientSide { get; set; }

现在我在 JavaScript 中调用了属性并将错误添加到我的 ModelState 中

if (parseInt(academicAchievement, 10) > parseInt(peAcademicAchievement, 10))
{
    @Model.modelSateClientSide.AddModelError(string.Empty, "xxx");
    return false;
}

我做得对吗?我在上面的行中有一个错误:

最好的重载方法匹配 System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' 有一些无效的参数。

如何解决这个问题?使用 Javascript 在 MVC 上的 ModelState 中添加错误消息的任何其他选项?

【问题讨论】:

    标签: javascript asp.net-mvc runtime-error modelstate


    【解决方案1】:

    好吧,我认为您不能使用 JavaScript 写入 ModelState Dictionary,因为它是一种客户端语言,而 C# / Razor 是在服务器端处理的。

    在您发布的代码中,行

    @Model.modelSateClientSide.AddModelError(string.Empty, "xxx");
    

    实际上会在每次页面加载时进行评估,因为它是在服务器上处理的,并且 Razor 并不“知道” JavaScript 或其条件语句。

    但是,如果您只想显示类似于 ValidationSummary HtmlHelper 默认生成的错误消息,您可以编写一个 JavaScript 函数来实现。或多或少是这样的:

    function showClientError(message) {
       var $div = $('.validation-summary-errors');
       if ($div.length == 0) {
           $div = $('<div class="validation-summary-errors">');
           $div.html('<ul></ul>');
           // Put the $div somewhere
           $div.appendTo($('#myForm'));
       }
       $div.find('ul').append($('<li>').text(message));
    }
    

    【讨论】:

      猜你喜欢
      • 2018-06-21
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      相关资源
      最近更新 更多