Html.ValidationSummary 未填充自定义错误 ASP.NET MVC Razor 页面
Html.ValidationSummary Not Populating with Custom Errors ASP.NET MVC Razor Page
我是 MVC 的新手,我需要创建一个自定义错误,如果用户没有 select 类别,该错误就会触发。但是,当创建没有类别的产品时,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 错误时,您应该使用 return 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 });
}
}
我是 MVC 的新手,我需要创建一个自定义错误,如果用户没有 select 类别,该错误就会触发。但是,当创建没有类别的产品时,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 错误时,您应该使用 return 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 });
}
}