Asp.net mvc 2 MVC2.0将表单发布到操作,而不是重定向到操作

Asp.net mvc 2 MVC2.0将表单发布到操作,而不是重定向到操作,asp.net-mvc-2,Asp.net Mvc 2,我正在使用T4MVC重定向到另一个操作返回RedirectToAction(MVC.MyController.MyAction());。 结果,它执行get请求 是否有任何方法从控制器发出post请求。我想保持一切不变,但只做文章,而不是得到。我找不到任何方法。我在这里找到一个post helper,但我无法使用此post helper传递任何需要的值。我试图通过TempData传递值,但在使用此帮助程序时,这些值不会出现。也许有人有什么想法 我之所以要这样做,是因为当用户从一个控制器转到另一个

我正在使用T4MVC重定向到另一个操作返回RedirectToAction(MVC.MyController.MyAction());。 结果,它执行get请求

是否有任何方法从控制器发出post请求。我想保持一切不变,但只做文章,而不是得到。我找不到任何方法。我在这里找到一个post helper,但我无法使用此post helper传递任何需要的值。我试图通过TempData传递值,但在使用此帮助程序时,这些值不会出现。也许有人有什么想法

我之所以要这样做,是因为当用户从一个控制器转到另一个控制器时,如果用户单击“更新”或仅单击浏览器地址栏中的“输入”,页面将中断


出于这个原因,我应该使用session吗?

发布的唯一方法是使用一个表单并在表单上进行提交,无论是使用提交按钮还是javascript,您希望传递给该操作的任何信息都必须是该表单,您将在
FormCollection
中找到所有发布的内容(希望我拼写正确).RedirectToAction将始终执行GET,而不是POST(它将HTTP 302返回到浏览器,然后浏览器将发出GET请求)

要在整个重定向中持久化数据,如果数据可以轻松地表示为字符串并存储在查询字符串中,则可以将其添加到重定向的路由值中。 e、 g

如果是复杂类型,则需要将其存储在TempData中。关于StackOverflow的许多其他问题(例如一个)给出了如何解决的细节

如果在应用程序中重复存储TempData和读取TempData违反了您的代码感觉,那么您可以使用中提供的PassParametersDuringRedirect属性和通用RedirectToAction来封装它。关于这项技术的一些细节是可用的

return RedirectToAction("Search", new { searchString = "whatever" });