【问题标题】:System.Web.Mvc.HtmlHelper<dynamic> does not contain a definition for 'Syncfusion' ErrorSystem.Web.Mvc.HtmlHelper<dynamic> 不包含“Syncfusion”错误的定义
【发布时间】:2011-02-05 22:36:53
【问题描述】:

我正在使用带有 Razor 引擎和 9.104.0.20 版 SyncFusion mvc 控制套件的 ASP.Net MVC 3。

在此控件的文档中,我将在我的母版页中放置类似于以下的代码行:

@Html.Syncfusion().ScriptManager()

根据 Syncfusion 文档和 this Stack Overflow suggestion,我已确保将命名空间添加到我的 web.config 文件中的元素下。

   <add namespace="Syncfusion.Mvc.Schedule"/>

解决方案已构建,但运行时出现以下错误:

“System.Web.Mvc.HtmlHelper”不包含“Syncfusion”的定义,并且找不到接受“System.Web.Mvc.HtmlHelper”类型的第一个参数的扩展方法“Syncfusion”(您是否缺少using 指令还是程序集引用?)

我认为这个问题与 Syncfusion 无关,而是因为我无法正确引用他们的程序集。

我该如何解决这个问题?

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:

    通过在元素中添加命名空间引用解决了该问题。

    我必须在 web.config 的顶部添加以下 configSection 信息:

    <configSections>
        <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
          <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
        </sectionGroup>
      </configSections>
    

    然后我必须在定义的部分中添加 SyncFusion 命名空间:

    <system.web.webPages.razor>
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <pages pageBaseType="System.Web.Mvc.WebViewPage">
          <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
            <add namespace="System.Collections" />
            <add namespace="Syncfusion.Mvc.Shared"/>
            <add namespace="Syncfusion.Mvc.Schedule"/>
            <add namespace="Syncfusion.Mvc.Tools"/>
          </namespaces>
        </pages>
      </system.web.webPages.razor>
    

    【讨论】:

    • 很好的答案!我遇到了几个关于这个主题的问题,大多数都错过了在 configSections 中添加参考
    • 谢谢。这么多人仍然有这个问题真是太疯狂了。
    • 我建议从配置中删除版本信息。只需使用“类型,组装”,它将继续工作。这在升级 mvc2、3、4、5、razor、entlib 时消除了维护,其余部分由程序集绑定重定向完成。我不得不将此修复应用于根、区域、视图 web.config 文件,并且我的所有页面都开始工作。谢谢
    【解决方案2】:

    对我来说,我必须关闭 Visual Studio 并在执行 @YeahStu 的回答后重新打开。

    【讨论】:

      【解决方案3】:

      您可能需要将 DevExpress/任何其他命名空间从 ~/Web.config 配置文件复制到 ~/View/Web.config 配置文件或任何其他 Web.config 文件中

      这是我完美使用的解决方案

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-23
        • 1970-01-01
        • 1970-01-01
        • 2017-01-25
        • 1970-01-01
        • 1970-01-01
        • 2020-02-19
        • 1970-01-01
        相关资源
        最近更新 更多