如何使用控制器中的POST参数重定向到外部URL

时间:2013-08-04 17:29:22

标签: c# .net asp.net-mvc asp.net-mvc-4

如何使用POST方法从控制器重定向到外部URL并传递一些参数?

基本上我需要自动完成表单的功能。

我在我的控制器中找到了Redirect方法,但它似乎只接受了一个url字符串。没有方法也没有参数。

2 个答案:

答案 0 :(得分:2)

您无法使用服务器端重定向进行发布。选项:

  • 在服务器上执行POST并处理结果服务器端(如果您需要通过该帖子请求在目标服务器上设置或使用cookie,则不起作用)
  • 直接在浏览器端对该服务器执行发布
  • 如果您需要通知两者,请将AJAX帖子发送到您的服务器并正常发布到目标服务器。

答案 1 :(得分:2)

我正在使用Nuget的Fluentx.Mvc。

从nuget安装Fluentx.Mvc

您需要在代码中加入:

using Fluentx.Mvc;

以及使用帖子调用外部网址的代码:

首先创建一个像:

这样的词典
Dictionary<string, object> 
          objData = new Dictionary<string, object>();

并插入值:

objData.Add("name", "John");

objData.Add("city", "NY");

之后,使用从Fluentx返回:

return this.RedirectAndPost("http://yourexternalurl", objData);

在您的外部网址中,您会获得值:

string strName = Request["nome"];
string strCity = Request["city"];