我有一個MVC web項目。在該項目的CSHTML頁,我有如下的Ajax代碼: -結果變量在Ajax成功的HtmlHelper裏面沒有accessbile
$.ajax({
type: 'POST',
dataType: 'json',
cache: false,
contentType: false,
processData: false,
url: '@Url.Action("Report", "Report")',
data: data,
success: function (result) {
if (result) {
alert(result.AccessToken); // ----> result.AccessToken is accessible here
$("#load-report").html(@Html.PowerBIReportFor(m => m.Report, new { id = "pbi-report", style = "height:68vh", powerbi_access_token = result.AccessToken })); // ----> result.AccessToken is not accessible here
}
else {
alert("server Error: Not able to load report, please try again");
}
},
error: function() {
alert("Error in uploading the data");
}
});
以Ajax調用的響應是有兩個數據承包商,客人一個JSON序列化對象 - 報告和的accessToken。在Ajax的成功功能中,警報能夠訪問result.AccessToken並正確打印。但是,當我嘗試訪問Html.PowerBIReportFor()函數中的result.AccessToken時,該頁面顯示錯誤,指出「名稱結果在當前上下文中不存在」。
任何人都可以幫助我嗎?
你必須記住的是,對Html.PowerBIReportFor()的調用在服務器**上呈現爲**。它不會了解您網頁上的JavaScript。我對PowerBIReportFor()並不熟悉,但一種選擇是將報告加載到JavaScript變量中,然後對訪問令牌執行AJAX調用。如果成功,將報告輸出放入文檔中,然後使用JQuery.attr() –
設置powerbi_access_token屬性感謝JohnMorgan。 – Srikant