【发布时间】:2016-10-14 13:52:50
【问题描述】:
有没有一种方法可以覆盖控制器为模型属性引发的默认验证错误?例如,car.make 不能为 null,但如果该人拼写错误的汽车名称,我想抛出一个特定的错误。:
型号
public class Car
{
public int ID { get; set; }
[Required]
public string Make { get; set; }
}
查看
<div class="form-group">
@Html.EditorFor(model => model.Make, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Make, "", new { @class = "text-danger" })
</div>
控制器
public ActionResult Create([Bind(Include = "Make,Model")] Car car)
{
ModelState.AddModelError("Car.Make", "Check your spelling");
return View(car);
}
【问题讨论】:
-
不是
.AddModelError("Car.Make", ...)而是.AddModelError("Make", ...)- 您的模型不包含名为Car的属性。但如果您只想从有效值中进行选择,请考虑使用<select>元素(或 jQuery 自动完成)
标签: c# asp.net-mvc forms validation