我有一个场景,比如我需要在Edit [GET]请求中显示来自DB的错误消息。
我知道如果请求类型是[POST],可以这样做,但我们如何在[GET]请求中执行此操作。
相同代码:
[HttpGet]
public ActionResult Edit(Int64 ID)
{
tblSample1 model = GetData(ID);
ViewData.ModelState.AddModelError(model.Username, "Invalid Username provided.");
return View("~/Views/Sample1/_Edit.cshtml", model);
}
[HttpPost]
public ActionResult Edit(tblSample1 model)
{
if (ModelState.IsValid)
{
......
......
}
}
答案 0 :(得分:11)
这应该仍然有用。 AddModelError
的第一个参数是关键。你传递了属性Username
的值...这是行不通的。你想要的是传递属性名称作为键:
ModelState.AddModelError("Username", "Invalid Username provided.");
// ^^^^^^^^^^ Username property of model
当然,您必须在视图中加上ValidationSummary
或ValidationMessage
。