我正在构建我的第一个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应用程序还是比较陌生的,我不太确定我尝试做什么甚至是可能的。
感谢任何帮助。感谢
答案 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中。