猿问

如何使用POST动词重定向到页面?

如何使用POST动词重定向到页面?

RedirectToAction控制器内调用时,它会使用HTTP GET自动重定向。如何明确告诉它使用HTTP POST?

我有一个接受GET和POST请求的动作,我希望能够RedirectToAction使用POST并发送一些值。

像这样:

this.RedirectToAction(
    "actionname",
    new RouteValueDictionary(new { someValue = 2, anotherValue = "text" }));

我希望使用HTTP POST而不是GET发送someValueanotherValue值。有谁知道如何做到这一点?


扬帆大鱼
浏览 559回答 3
3回答

狐的传说

HTTP不支持使用POST重定向到页面。当你重定向到某个地方时,HTTP“Location”标题会告诉浏览器去哪里,浏览器会对该页面发出GET请求。您可能只需编写页面代码即可接受GET请求以及POST请求。

米琪卡哇伊

如果要在重定向期间在两个操作之间传递数据而不在查询字符串中包含任何数据,请将模型放在TempData对象中。行动TempData["datacontainer"] = modelData;视图var modelData= TempData["datacontainer"] as ModelDataType;TempData意味着一个非常短暂的实例,您只应在当前和后续请求中使用它!由于TempData以这种方式工作,您需要确定下一个请求将是什么,并且重定向到另一个视图是唯一可以保证这一点的时间。因此,使用TempData可靠地工作的唯一方案是重定向时。
随时随地看视频慕课网APP
我要回答