Html.ValidationSummary не заполняется пользовательскими ошибками ASP.NET MVC Razor Page - PullRequest
0 голосов
/ 24 февраля 2019

Я довольно новичок в 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});
}

1 Ответ

0 голосов
/ 24 февраля 2019

когда вы используете ошибки 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 });
        }
    }
...