我是MVC的新手,我需要创建一个自定义错误,如果用户没有选择类别,则会触发该错误。但是,在创建没有类别的产品时,不会填充Html.ValidationSummary。相反,视图将返回并显示在浏览器上,而不会填充验证摘要。请看下面,我已经复制了相关的代码。 CSHTML代码
@Html.ValidationSummary(false, "", new { @class = "text-danger" })
控制器代码
if (!model.HasCategories)
{
ModelState.AddModelError(string.Empty, "A category is required.");
}
if(!ModelState.IsValid()) {
return RedirectToAction("addEditProduct", new { id = model.P.ID});
}
当您使用ModelState错误时,您应该使用返回View()而不是Redirect
public ActionResult addEditProduct()
{
return View();
}
[HttpPost]
public ActionResult addEditProduct(EditProductModel model)
{
if (!model.HasCategories)
{
ModelState.AddModelError(string.Empty, "A category is required.");
return View(new { id = model.P.ID });
}
if (!ModelState.IsValid())
{
return View(new { id = model.P.ID });
}
}