2
我使用的WebClient這樣僞造表單POST:如何顯示從Web客戶端在我的asp.net響應(HTML)MVC視圖
public static string SendHttpRequest(string url, string method, List<WebParameter> paramaters)
{
using(WebClient client = new WebClient())
{
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection();
foreach (var param in paramaters)
{
reqparm.Add(param.name, param.value);
//reqparm.Add("param2", "escaping is already handled");
}
byte[] responsebytes = client.UploadValues(url, method, reqparm);
string responsebody = Encoding.UTF8.GetString(responsebytes);
return responsebody;
}
}
其工作良好,但迄今爲止的反應是html頁面。我想將此頁面嵌入到我的視圖中。
我的控制器動作看起來像這樣
string response = SendHttpRequest(purl,"POST",param);
ViewBag.Response = response;
return View();
在我看來,當我打電話ViewBag.Response它向我展示了原始的HTML。這不是我想要的。我想顯示該頁面。
我在想我可以用iframe做到這一點,但沒有想法如何。
編輯:
預期的反應是這樣的:
<!DOCTYPE html> <html> <head> <link rel='shortcut icon' type='image/x-icon' href='/test_paydirect/favicon.ico' /> <meta name="viewport" content="width=device-width, initial-scale = 1, maximum-scale=1, user-scalable=no" /> <title>WebPAY</title> <link href="/test_paydirect/Content/webpay?v=CSrAVoCR_RCkIRW_2W4qWDLY74gqncHw6gTHkYQDqPI1" rel="stylesheet"/> <script src="/test_paydirect/scripts/jquery?v=YDYC4uCmpbLIjqOyVNC_2sd9YbHnRonWjUni8iH6_Xo1"></script> </head> <body> <div id="outer-frame"> <div id="page-header"> <div id="account-header"> </div> </div> <!--page logo header starts--> <div id="page-logo-header" class=""> <div id="page
我剛剛嘗試過...它顯示的頁面,但只有部分可以使用iframe來做這件事嗎?你知道嗎?謝謝你的幫助 – oliverdejohnson
我不認爲在這種情況下iFrames是你的問題。您是否嘗試過檢查HTML以查看哪些部分丟失,然後在SendHttpRequest方法中放置斷點以查看它們的比較方式? – anthr
問題是它有一個完整的html文檔,它有自己的樣式和腳本,這會打破/衝突當前頁面上的某些內容。唯一接近的就是iframe中新的srcdoc屬性...但我不想使用這個 – oliverdejohnson