使用ASP.NET MVC,在某些情况下(例如,表单提交)可能需要输入RedirectToAction。
RedirectToAction
一种这样的情况是,您在提交表单后遇到验证错误,并且需要重定向回表单,但希望该URL反映表单的URL,而不是表单提交的操作页面。
由于我需要表单包含原始POSTed数据,为了用户方便以及验证的目的,如何将数据通过RedirectToAction()?如果使用viewData参数,则我的POST参数将更改为GETparameter。
POST
RedirectToAction()
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); }