MVC 웹 프로젝트가 있습니다. 프로젝트의 cshtml 페이지에서 I는 아래의 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의 성공 기능에서 경고는 결과에 액세스 할 수 있습니다. 액세스 시도를 올바르게 인쇄합니다. 그러나 Html.PowerBIReportFor() 함수 내에서 result.AccessToken에 액세스하려고하면 페이지에 "이름 결과가 현재 컨텍스트에 없습니다"라는 오류가 표시됩니다.
아무도 도와 줄 수 있습니까?
기억해야 할 것은 Html.PowerBIReportFor()에 대한 호출이 ** 서버 **에 렌더링된다는 것입니다. 페이지의 JavaScript에 대한 지식이 없습니다. PowerBIReportFor()에 익숙하지 않지만 한 가지 옵션은 보고서를 자바 스크립트 변수로로드 한 다음 액세스 토큰에 대한 AJAX 호출을 수행하는 것입니다. 성공하면 보고서 출력을 문서에 넣은 다음 JQuery.attr()을 사용하여 powerbi_access_token 속성을 설정하십시오. –
감사합니다. JohnMorgan. – Srikant