编程语言
首页 > 编程语言> > 如何使用Javascript向MVC上的ModelState添加错误消息?

如何使用Javascript向MVC上的ModelState添加错误消息?

作者:互联网

这是我的Model属性

 public ModelStateDictionary modelSateClientSide { get; set; }

现在我在JavaScript中调用了Property,并在我的ModelState中添加了错误

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

我做得对吗?我在上面的行中出错了:

The best overloaded method match for
System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)’
has some invalid arguments.

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

解决方法:

好吧,我认为您不能使用JavaScript写入ModelState字典,因为它是客户端语言,而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));
}

标签:javascript,asp-net-mvc,runtime-error,modelstate
来源: https://codeday.me/bug/20190725/1533820.html