我在理解如何最好地实现不显眼的客户端验证时遇到问题,该验证与控制器中添加的ModelState.AddModelError()
错误一起使用。
所以,这是当前的代码:
@Html.ValidationSummary(true)
@Html.ValidationMessageFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.LastName)
如果我遗漏了名字,将会正确显示错误消息。如果我输入名字和标签,则消息将消失 - 因为它应该有效。
当没有客户端错误并且我可以提交此表单时,我必须对用户尚不存在的数据库进行检查。如果是,我在添加错误:
ModelState.AddModelError("", "User already exists")
返回模型时,会显示一个错误框,但其中没有消息。
如果我将 (编辑:Jan的评论解决了这个问题)部分) @Html.ValidationSummary(true)
更改为@Html.ValidationSummary(false)
,我会看到模型正确返回错误消息。
现在的问题是,所有客户端验证都将被复制并显示在两个不同的位置。
另外,我希望错误显示在同一个地方/ div中。就像现在一样,它将是两个不同的验证摘要。
有什么方法吗?
答案 0 :(得分:0)
您在文本框旁边设置的验证可以将@Html.ValidationMessageFor(model => model.LastName)
的文字设置为@Html.ValidationMessageFor(model => model.LastName, "")
。或者如果你想要添加'*'。然后,您的文本框旁边就没有消息了。