如果表单有错误,请更改文本

时间:2011-11-30 17:49:54

标签: asp.net-mvc asp.net-mvc-3 validation

我目前在表单顶部有一条摘要消息,邀请我的用户登录。如果表单未在提交时验证,我希望将其替换为相关错误。

我能想到的唯一方法是隐藏初始文本(可能在@Html.Label中),然后显示@Html.ValidationSummary。但是,我觉得最有可能采用更有效的方法。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

我会有一个@Html.Label帮助器,并使用ViewBag对象将数据传递给它。在测试ModelState.IsValid时,在控制器中这样,如果为false,则可以设置ViewBag属性,使其传递给标签助手。

有意义吗?我就是这样做的。

答案 1 :(得分:0)

启用验证摘要

@Html.ValidationSummary(true)
post ActionResult中

检查ModelState

[HttpPost]
public ActionResult Foo( Bar _bar){

  if(ModelState.IsValid){
    //noral course of action
   return RedirectToAction("Foo"); //Redirect to the GET method
  }
   ModelState.AddModelError("", "|Your Message Here");
 return View(_bar);
}

答案 2 :(得分:0)

不,这种方法没有问题 我通常使用带有jquery的单个div来处理表单验证等内容。 我在页面上创建了一个div,可以显示任何类型的消息以供用户指导。
例如:
如果我向用户显示某种信息,它将显示如下:

div id='divMessage'</div>

$('#divMessage').html('Please fill the following form.').removeClass().addClass('msg');

如果出现某些错误,将使用相同的div来显示错误消息:

$('#divMessage').html('some error occurred.').removeClass().addClass('errmsg');

我希望直到有用。