1

我正在构建我的第一个 MVC 4 应用程序,我需要一些帮助来重定向用户。

我有一个 Windows 窗体应用程序,我使用 aAxSHDocVw.AxWebBrowser将用户重定向到特定的 URL,准确地说是 SOAP Web 服务,以及发送 HTTP POST 和 HEADER 数据。这样做是这样的:

oHeaders = "Content-Type: application/x-www-form-urlencoded" + "\n" + "\r";
sPostData = "ExchangeSessionID=" + SessionID;
oPostData = ASCIIEncoding.ASCII.GetBytes(sPostData);

axWebBrowser2.Navigate2(ref oURL, ref o, ref o, ref oPostData, ref oHeaders);

我希望在我的 MVC 应用程序中复制此功能,但不确定如何做到这一点。

我希望在 iframe 中使用它,但找不到从中发送 POST 和 HEADER 数据的方法。这是我迄今为止一直在尝试的:

控制器

 ViewBag.URL = TempData["URL"];
 ViewBag.SessionID = TempData["SessionID"];
 ViewBag.FullURL = TempData["URL"] + "?ExchangeSessionID=" + TempData["SessionID"];
 return View();

看法

<iframe src="@ViewBag.FullURL" width="100%" height="500px"></iframe>

基本上,我试图将数据附加到 URL 的末尾,希望这适用于 HTTP POST 部分。这就是我最终的结果:

https://www.myurl.aspx?ExchangeSessionID=87689797

用户被定向到该页面,但 Web 服务给了我一个错误(它告诉我它现在正在接收 POST 数据)。

可以请一些人帮助我尝试解决这个问题,或者甚至给我建议如何以另一种方式解决这个问题。就像我说的,我对 MVC 应用程序还很陌生,我不完全确定我正在尝试做的事情是否可行。

任何帮助表示赞赏。谢谢

4

1 回答 1

2

我决定自己回答这个问题,以防将来有人希望做类似的事情。

第一步是创建我的 iframe:

<iframe name="myframe" src="" width="100%" height="700px"></iframe>   

接下来我想创建一个带有按钮的表单,当按下该按钮时,将在定位 iFrame 时将数据发布到 url(注意表单的目标属性):

<form action="@ViewBag.URL" method="post" target="myframe">
    <input type="hidden" name="ExchangeSessionID" value="@ViewBag.SessionID" />        
    <input type="submit" value="Submit" />
</form>

所以发生的情况是,当按下按钮时,表单将 ExchangeSessionID 发布到目标 URL,然后页面响应显示在 iFrame 中。

于 2013-09-06T14:37:55.173 回答