使用 ASP.NET MVC 时,有些情况(例如表单提交)可能需要 RedirectToAction
。
一种情况是当您在提交表单后遇到验证错误并需要重定向回表单,但希望 URL 反射(reflect)表单的 URL,而不是它提交到的操作页面。
由于我要求表单包含最初的 POST
ed 数据,为了方便用户以及验证目的,我如何通过 RedirectToAction()
?如果我使用 viewData 参数,我的 POST
参数将更改为 GET
参数。
最佳答案
解决方案是使用 TempData 属性来存储所需的 Request 组件。
例如:
public ActionResult Send()
{
TempData["form"] = Request.Form;
return this.RedirectToAction(a => a.Form());
}
然后在您的“表单”操作中,您可以:
public ActionResult Form()
{
/* Declare viewData etc. */
if (TempData["form"] != null)
{
/* Cast TempData["form"] to
System.Collections.Specialized.NameValueCollection
and use it */
}
return View("Form", viewData);
}
关于c# - 如何在不丢失请求数据的情况下在 ASP.NET MVC 中使用 RedirectToAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936/