ASP.NET MVC-如何在RedirectToAction中保留ModelState错误?

我有以下两种操作方法(简化了问题):


[HttpGet]

public ActionResult Create(string uniqueUri)

{

   // get some stuff based on uniqueuri, set in ViewData.  

   return View();

}


[HttpPost]

public ActionResult Create(Review review)

{

   // validate review

   if (validatedOk)

   {

      return RedirectToAction("Details", new { postId = review.PostId});

   }  

   else

   {

      ModelState.AddModelError("ReviewErrors", "some error occured");

      return RedirectToAction("Create", new { uniqueUri = Request.RequestContext.RouteData.Values["uniqueUri"]});

   }   

}

因此,如果验证通过,我将重定向到另一个页面(确认)。


如果发生错误,我需要显示与错误相同的页面。


如果我这样做return View(),则显示错误,但如果我这样做return RedirectToAction(如上),它将丢失模型错误。


我对这个问题并不感到惊讶,只是想知道你们如何处理?


我当然可以只返回相同的View而不是重定向,但是我在“ Create”方法中具有逻辑,该逻辑填充了视图数据,我必须重复这些数据。


有什么建议么?


慕哥9229398
浏览 537回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP