没有表单提交的MVC表单验证

MVC form validation without form submission

本文关键字:表单 验证 MVC 表单提交      更新时间:2023-09-26

我有一个由带有标准[Required]验证的MVC模型填充的标准表单。我想通过AJAX"提交"这个表单数据,而不是通过提交,我想利用内置的MVC/razor验证特性。我不知道如何在不触发表单提交事件的情况下触发客户端验证。

这是我的剃刀标价:

@using (Html.BeginForm()) {
     <span class="label">Team Name:</span>&nbsp;@Html.TextBoxFor(m => m.Name})
     @Html.ValidationMessageFor(m => m.Name)

这是我的模型:

public class Team
{
    [Required(ErrorMessage = "Required")]
    public string Name { get; set; }

看起来这应该是一件容易的事情。它在提交时效果很好。我只需要知道如何手动调用验证方法。

这个特性是默认启用的,但是由于您可能没有添加到所需JavaScript库的链接,它一直没有工作。

<script src="~/Scripts/jquery-1.7.1.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

既然这是最重要的答案,当你谷歌"mvc验证表单提交"时,我必须添加另一点,这花费了我几个小时。当你使用

@Html.ValidationSummary()

在你的代码中,表单get被提交,即使你添加了这些库并设置

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />