用户在iframe中使用POST重定向

时间:2013-08-09 09:19:05

标签: web-services asp.net-mvc-4 post iframe

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

我有一个Windows窗体应用程序,我使用AxSHDocVw.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应用程序还是比较陌生的,我不太确定我尝试做什么甚至是可能的。

感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:1)

我决定自己回答这个问题,因为将来任何人都希望做类似的事情。

第一步是创建我的iframe:

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

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

<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中。