Sco*_*ker 180 modelstate asp.net-mvc-2-validation asp.net-mvc-2
我在检查我的数据库Create(FooViewModel fvm){...}
,看是否fvm.prop1
和fvm.prop2
在该组合已经存在; 如果是这样,我想向modelstate添加一个错误,然后返回整个视图.我试过了:
public ActionResult Create(FooViewModel fvm){
if (ThatComboAlreadyExists(fvm)) {
ModelState.AddModelError("Model", "There is already one like that");
return View(fvm);
}
}
Run Code Online (Sandbox Code Playgroud)
...但我没有显示错误Html.ValidationSummary
,这是我认为它们会出现的地方.我怀疑"模型"不是正确的关键,但我一直无法找到任何谷歌.
Sco*_*ker 312
我最终偶然发现了一个我正在寻找的用法的例子 - 通常给模型分配一个错误,而不是像其中一个属性一样,你通常会调用:
ModelState.AddModelError(string key, string errorMessage);
Run Code Online (Sandbox Code Playgroud)
但是为密钥使用空字符串:
ModelState.AddModelError(string.Empty, "There is something wrong with Foo.");
Run Code Online (Sandbox Code Playgroud)
错误消息将以<%: Html.ValidationSummary() %>
您期望的方式显示在其中.
Vin*_*nyG 26
您可以在模型的任何属性上添加模型错误,我建议是否与创建新属性无关.
作为示例,我们检查电子邮件是否已在DB中使用,并将错误添加到操作中的Email属性,因此当我返回视图时,他们知道存在错误以及如何通过使用显示它
<%: Html.ValidationSummary(true)%>
<%: Html.ValidationMessageFor(model => model.Email) %>
Run Code Online (Sandbox Code Playgroud)
和
ModelState.AddModelError("Email", Resources.EmailInUse);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
139209 次 |
最近记录: |