加載我的頁面後,我想發出Web請求,以便可以通過JavaScript訪問其響應。我寫了一個向服務器發出請求的c#類。這個類由我的MVC應用程序中的控制器調用。我可以確認客戶端類正常運行&返回JSON的字符串表示形式。ASP.Net MVC - 在頁面加載中使用WebResponse作爲JavaScript變量
我的問題是這樣的。我應該如何調用控制器,以便在JavaScript中使用響應? @ http.Action只是簡單地返回一個包含整個頁面html的txt文件,其中包含響應的地方,我打電話。我想代之以將此存儲爲變量並保持初始索引視圖。
代碼波紋管已被修改爲只包含必需品。
控制器
public ActionResult getMeterConfig() {
string scheme = "http";
string host = "*****";
int port = ****;
string dataset = "*****";
string db = "****";
string method = "GET";
var request = new client();
request.setProps(scheme, host, port, dataset, db, method);
request.makeRequest();
var response = request.getResponse();
return Json (response,JsonRequestBehavior.AllowGet);
}
然後調用在頁面加載控制器:
$(window).load(function(){
var json = @Html.Action("actionName","contollerName";
});
EDIT澄清
伊夫改變的JavaScript爲:
$(window).load(function() {
$.get('@Html.Action("getMeterConfig", "GetMeterConfig")', function (response) {
var meters = response;
});
});
這將返回一個名爲Index.json的下載,而不是將響應存儲在變量計中。
爲了使這更絕的以.json文件內容如下......它包括我的索引視圖HTML並替換@ Html.Action(「getMeterConfig」,「GetMeterConfig」)與實際響應。
這樣做很有道理!我應用了這些建議,但仍然得到一個名爲index.json的下載幷包含整個頁面的標記。例如:它包含html,head,腳本標籤,主體等。然後它將腳本添加到我們聲明var json = response的腳本中。有什麼想法嗎?是因爲控制器正在返回json嗎? – LCaraway
@LCaraway:那麼,getMeterConfig返回的響應是什麼?如果第三方頁面正在返回HTML,並且您返回了他們返回的任何內容,那麼您還將返回HTML。 – David
電話打到的服務是我們管理的API。它也包含的HTML是我家庭控制器上索引視圖的html。使用小提琴手我可以確認只有JSON數組正在被返回。例子[{object 1},{object 2}]這是預期的。 – LCaraway