我目前在表单顶部有一条摘要消息,邀请我的用户登录。如果表单未在提交时验证,我希望将其替换为相关错误。
我能想到的唯一方法是隐藏初始文本(可能在@Html.Label
中),然后显示@Html.ValidationSummary
。但是,我觉得最有可能采用更有效的方法。
有人可以帮忙吗?
答案 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');
我希望直到有用。