我目前正在使用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文本框中输入新输入时,错误消失了。
答案 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文本框的表单空为空,则应显示您班级中定义的验证消息。