我有一个呈现“创建”表单的视图。
表单提交到POST操作,然后在该操作结果中,根据是否保存提交内容,重定向到2页中的1页。
当我通过验证失败并重定向到“ CreateLink”时,似乎没有进行模型初始化。
这是我对获取视图的操作:
[HttpGet]
public ActionResult CreateLink()
{
var model = new ViewModels.Content.ContentViewModel()
{
Categories = new List<SelectListItem>(), // snipped for brevity
};
return View(model);
}
对于我的帖子:
[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的值,则可以正确地重定向到get视图的“ CreateLink”,但是由于视图期望Model.Categories被初始化,但出现错误,因此它会为空,那么RedirectToAction()不会实际执行该操作吗?