RedirectToAction未初始化模型

时间:2020-04-09 20:33:03

标签: asp.net-mvc redirecttoaction

我有一个呈现“创建”表单的视图。

表单提交到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()不会实际执行该操作吗?

0 个答案:

没有答案