我正在使用带有Razor引擎的ASP.Net MVC 3和SyncFusion mvc控件套件的9.104.0.20版本。
在此控件的文档中,我将在我的母版页中添加类似下面的代码行:
@Html.Syncfusion().ScriptManager()
根据Syncfusion文档和this Stack Overflow suggestion,我确保将名称空间添加到元素下的web.config文件中。
<add namespace="Syncfusion.Mvc.Schedule"/>
解决方案构建但运行时出现以下错误:
'System.Web.Mvc.HtmlHelper'不包含'Syncfusion'的定义,并且没有扩展方法'Syncfusion'接受类型'System.Web.Mvc.HtmlHelper'的第一个参数可以找到(你错过了吗?) using指令或程序集引用?)
我不认为这个问题与Syncfusion有关,而是因为我无法正确引用它们的程序集。
我该如何解决这个问题?
答案 0 :(得分:18)
通过在元素中添加命名空间引用来解决该问题。
我必须在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>
答案 1 :(得分:0)
对我来说,我不得不关闭 Visual Studio 并在实现 @YeahStu 的答案后重新打开。