第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復 ReportViewer 在 ASP.NET MVC 中向多個用戶顯示同一報表的問題?

如何修復 ReportViewer 在 ASP.NET MVC 中向多個用戶顯示同一報表的問題?

C#
紫衣仙女 2022-08-20 16:02:43
我使用 ASP.NET MVC編寫了一個系統(tǒng),可以生成各種財務報告。每個報告都在其自己的控制器中,每個控制器都有自己的“報告”操作。該操作 在 ViewBag 中呈現(xiàn)一個包含報表的部分視圖,該視圖將報表傳遞給前端的 javascript,并將呈現(xiàn)的元素放在 JQueryUI 對話框中。用戶可以運行資產(chǎn)負債表報表,然后另一個用戶可以運行損益表報表,在第一個用戶運行資產(chǎn)負債表報表之后,第二個用戶看到的不是損益表,而是資產(chǎn)負債表。這是將報表作為 JSON 對象返回的代碼 //Initialize report and add datasources etc. reportViewer.LocalReport.Refresh(); ViewBag.ReportViewer = reportViewer; return Json(JsonResponse.Success(RenderRazorViewToString("PrintVoucher", null)));這是部分視圖@using ReportViewerForMvc;<div class="col-md-12 col-lg-12 col-sm-12 col-xs-12">    @Html.ReportViewer(ViewBag.ReportViewer as Microsoft.Reporting.WebForms.ReportViewer)</div>任何建議或指導將不勝感激!
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經(jīng)驗 獲得超8個贊

我們遇到了同樣的問題,它似乎與ReportViewerForMvc中的并發(fā)錯誤有關。偶然發(fā)現(xiàn)了這個舊的github鏈接,其中包含信息和建議的修復程序。希望這有幫助。

https://github.com/nrifath2009/ReportViewerForMvc/pull/1


查看完整回答
反對 回復 2022-08-20
?
MMTTMM

TA貢獻1869條經(jīng)驗 獲得超4個贊

  1. 確保 Action 沒有屬性,以確保服務器始終為每個請求計算新報告或 Set on 屬性構造函數(shù)OutputCacheVaryByParam

  2. 使用強類型模型而不是ViewBag

  3. 在每次調用時初始化 的新對象,而不是使用單個靜態(tài)對象。ReportViewer

  4. 在控制器上使用操作并將報表對象傳遞到 PartialView,Razor 引擎將使用模型處理 Partial View,并生成 HTML 標記作為 json 調用的返回。PartialView

這是控制器和視圖的工作示例(我使用Bootbox而不是JqueryUI)

控制器:

[HttpPost, ValidateAntiForgeryToken]

public PartialViewResult Report(/*Pass Optional Parameters If Required*/)

{

    var reportViewer = new ReportViewer();

    //reportViewerInitialization

    return PartialView("PrintVoucher", reportViewer);

}

用于加載報表視圖的 JavaScript 方法

function showReport(reportControllerName)

{

    var dialog = bootbox.dialog({

        message: '<p><i class="fa fa-spin fa-spinner"></i> Loading...</p>'

    });

    $.ajax({

        type: "POST",

        url: '/'+ reportControllerName +'/Report/',

        data: {/*DataPassed To The Report Action*/},

        success: function (data) {

            //data Field will contain an Html markup resulted from razor engine process for PrintVoucher PartialView

            dialog.find('.bootbox-body').html(data);

        }

    });

}

PrintVoucher.cshtml

@using ReportViewerForMvc;

<div class="container">

    <div class="row">

        <div class="col-md-12 col-lg-12 col-sm-12 col-xs-12">

            @Html.ReportViewer(Model as Microsoft.Reporting.WebForms.ReportViewer)

        </div>

    </div>

</div>


查看完整回答
反對 回復 2022-08-20
?
慕妹3242003

TA貢獻1824條經(jīng)驗 獲得超6個贊

嘗試在@Html.ReportViewer() 而不是視圖包中,使部分視圖成為“reportViewer”的強類型視圖。

之后轉到返回該部分視圖的代碼,并在返回集時將其作為返回Json(JsonResponse.Success(RenderRazorViewToString(“PrintVoucher”, reportViewer)));


查看完整回答
反對 回復 2022-08-20
  • 3 回答
  • 0 關注
  • 153 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號