RedirectToAction не инициализирует модель - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть представление, которое отображает форму Create.

Форма отправляется в действие POST, и внутри этого результата действия я перенаправляю на 1 из 2 страниц в зависимости от того, была ли отправка сохранена.

Когда мне не удается проверить и перенаправить на «CreateLink», создается впечатление, что инициализация модели не происходит.

Вот мое действие для представления get:

[HttpGet]
public ActionResult CreateLink()
{
    var model = new ViewModels.Content.ContentViewModel()
    {
        Categories = new List<SelectListItem>(), // snipped for brevity
    };
    return View(model);
}

И для моего post:

[HttpPost]
public ActionResult CreateLink(DataTypes.ViewModels.Content.ContentViewModel model)
{
    if (string.IsNullOrEmpty(model.DisplayName) || string.IsNullOrEmpty(model.ContentItemUrl))
    {
        TempData["ErrorNotification"] = "Please fill in all required fields.";
        return RedirectToAction("CreateLink"); // this should go back to the get action above
    }
    var contentSaved = _contentService.Save(model);
    if (contentSaved)
    {
        TempData["SuccessNotification"] = "Content created.";
        return RedirectToAction("Content", "Exhibitor");
    }
    else
    {
        TempData["ErrorNotification"] = "Content could not be saved.";
        return RedirectToAction("CreateLink");
    }
}

Если я отправляю форму без значений для DisplayName или ContentItemUrl, меня правильно перенаправляют на «CreateLink», который является представлением get, но я получаю ошибку, так как мое представление ожидает Model.Categories быть инициализированным, но оно имеет значение null, поэтому RedirectToAction () фактически не запускает действие?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...