У меня есть представление, которое отображает форму 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 () фактически не запускает действие?