如何从Controller发送表单数据

时间:2013-05-05 06:25:48

标签: asp.net-mvc webforms

我正在处理这个项目,我的应用程序需要连接到第三方应用程序。 我的步骤

  1. 创建表单以提交数据。
  2. 在MY控制器操作中获取表单数据。将我需要的变量保存到数据库中。
  3. 然后将数据发送给第三方应用程序。
  4. 现在的问题是,我需要将数据作为提交表单发送。 第三方应用将值视为

    Request.form("FormVal")
    

    我可以将no changes提交给第三方应用程序。

    那么如何将Form data through my Controller action发送到Third Party application?

    另外

    return view("action", model); // the model is needed to be sent.
    

    它适用于我自己的应用程序中的视图。但是我需要使用模型将其发送到外部视图(第三方),以便它们可以获得值

    Request.form("FormVal")

    我看到Redirect命令可以转到外部视图但我无法发送form Data

2 个答案:

答案 0 :(得分:1)

您可以使用HttpClient将数据发送到第三方应用程序。

像这样:

  var formValues = new Dictionary<string,string>();
  formValues.Add("Key", "Value");
  HttpResponseMessage response = await httpClient.PostAsync(thirdPartyUrl, new FormUrlEncodedContent(formValues));
  response.EnsureSuccessStatusCode();
  string responseBody = await response.Content.ReadAsStringAsync();

<强>编辑:

如果您不使用.NET Framework 4.5,则可以改为使用WebClient.UploadValues

 byte[] responseArray = myWebClient.UploadValues(thirdPartyUrl,myNameValueCollection);

答案 1 :(得分:0)

HttpResponseMessage不是我真正想要的。我还需要重定向。 所以我使用了 javascript / jquery

我创建了两个视图

  1. 1st是用户输入视图。
  2. 第二个是重定向视图
  3. 从第一个视图发布到我的控制器,然后从控制器操作中调用重定向视图

    return view("redirectView", model);
    

    在重定向视图中,我使用隐藏输入创建了表单

    @HiddenFor(m=>m.SomeValue)
    

    然后在页面加载时,我使用 javascript 提交表单。

    $("form#formID").submit();
    

    这对我现在很有用。 还要感谢Kambiz让我理解这个问题。