使用Stimulsoft时'System.ArgumentNullException'

时间:2015-07-26 03:22:33

标签: asp.net-mvc asp.net-mvc-5 stimulsoft

我正在尝试在我的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

suggested
  <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",但我会在此处获得例外。

1 个答案:

答案 0 :(得分:0)

在web.config中的appsettings中添加此行

<add key="PageInspector:ServerCodeMappingSupport" value="Disabled" />

也许您的报告文件是使用不同版本的Stimulsoft创建的。