新文本输入后从视图中删除模型状态错误

时间:2016-04-15 17:01:54

标签: jquery asp.net-mvc-4

我目前正在使用MVC4中的网站并尝试实现jquery验证。

我在我的http帖子中添加了一个模型状态,如果在model.Username文本框中填充的用户名不存在,则会出错:

ModelState.AddModelError("UsernameNull", "Username does not exist");

编辑推特&我认为验证消息:

@Html.LabelFor(model => model.Username, "Username:")
@Html.EditorFor(model => model.Username)

<div class="error-container">
@Html.ValidationMessage("UsernameNull", null, new { @class = "error-container-error" })
</div>

它成功显示错误&#34;用户名不存在&#34;发布后,但问题是错误停留在视图页面上。我想要实现的是当在model.Username文本框中输入新输入时,错误消失了。

1 个答案:

答案 0 :(得分:0)

我建议利用数据注释验证器,这样您只需向类属性添加一个或多个属性即可执行验证。

using System.ComponentModel.DataAnnotations;

namespace MvcApplication.Models
{
    public class MyModel
    {
        [Required(ErrorMessage = "User name is required")]
        [DisplayName("User Name")]
        public string UserName { get; set; }
    }    
}

当模型状态包含任何错误时,以下控制器操作会重新显示视图

[HttpPost]
public ActionResult MyAction(MyModel model){
    if(!ModelState.IsValid)
        return View();

    // Insert logic here
    //return RedirectToAction("Index");
}

最后,在您看来,您应该可以使用

<div class="error-container">
    @Html.ValidationMessage("UserName", "*", new { @class = "error-container-error" })
</div>

如果您尝试将UserName文本框的表单空为空,则应显示您班级中定义的验证消息。