我正在尝试在我的MVC 5.2应用程序中使用Stimulsoft Reports 2014.3。当我尝试使用@Html.Stimulsoft().StiMvcViewer
时,我收到以下异常。
mscorlib.dll中出现'System.ArgumentNullException'类型的异常
值不能为空。参数名称:key
我可以使用@Html.Stimulsoft().StiMvcViewerFx
就好了。我已尝试在web.config中进行各种更改以获得此异常,但它们都没用。我也试过Debug - >例外,并检查公共语言运行时异常的两个框,但没有任何其他异常。
添加@Html.Stimulsoft().RenderMvcViewerScripts()
也没用。
这是观点:
@using Stimulsoft.Report.Mvc
@using System.Web.UI.WebControls
@model Models.GenericReportViewModel
<div>
@Html.Stimulsoft().StiMvcViewer(new StiMvcViewerOptions()
{
ActionGetReportSnapshot = string.Concat("LoadReport?Id=", Model.ReportName),
Width = Unit.Point(500),
Theme = StiTheme.Default,
ActionExportReport = "ExportReport",
Height = Unit.Point(400),
Controller = "Report",
})
</div>
这是web.config:
<system.web>
<globalization uiCulture="fa-IR" culture="fa-IR"></globalization>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="Stimulsoft.Base, Version=2014.3.0.0, Culture=neutral, PublicKeyToken=ebe6666cba19647a" />
<add assembly="Stimulsoft.Report, Version=2014.3.0.0, Culture=neutral, PublicKeyToken=ebe6666cba19647a" />
<add assembly="Stimulsoft.Report.Mvc, Version=2014.3.0.0, Culture=neutral, PublicKeyToken=ebe6666cba19647a" />
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5" />
<pages>
<namespaces>
<add namespace="Kendo.Mvc.UI" />
<add namespace="System.Web.Helpers" />
<!--<add namespace="System.Web.Abstractions" />-->
<add namespace="Stimulsoft.Base" />
<add namespace="Stimulsoft.Report" />
<add namespace="Stimulsoft.Report.Mvc" />
</namespaces>
</pages>
</system.web>
我应该注意Flash版本的工作原理如下,它没有任何问题:
@using Stimulsoft.Report.Mvc
@using System.Web.UI.WebControls
@model Models.GenericReportViewModel
<div>
@Html.Stimulsoft().RenderMvcViewerFxScripts()
@Html.Stimulsoft().StiMvcViewerFx(new StiMvcViewerFxOptions()
{
ActionGetReportSnapshot = string.Concat("LoadReport?Id=", Model.ReportName),
Width = Unit.Point(500),
Theme = StiMvcViewerFxOptions.Themes.Blue,
ActionExportReport = "ExportReport",
BackgroundColor = System.Drawing.Color.Silver,
ActionGetLocalization = "GetLocal",
Height = Unit.Point(400),
Controller = "Report",
})
</div>
将以下bindingRedirect
添加到web.config
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.1" />
</dependentAssembly>
添加它会抑制异常并阻止页面呈现,可能是因为我没有使用MVC 3!但它应该与它有关。
我也将此重定向设为oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"
,但我会在此处获得例外。
答案 0 :(得分:0)
在web.config中的appsettings中添加此行
<add key="PageInspector:ServerCodeMappingSupport" value="Disabled" />
也许您的报告文件是使用不同版本的Stimulsoft创建的。