找不到Html Helper Extensions

时间:2009-05-18 05:47:19

标签: asp.net-mvc extension-methods

我正在使用ASP.net MVC的发布版本,我似乎得到了很多错误

'System.Web.Mvc.HtmlHelper' does not contain a definition for 'RenderPartial' and no extension method 'RenderPartial' accepting a first argument of type 'System.Web.Mvc.HtmlHelper' could be found (are you missing a using directive or an assembly reference?)

这很奇怪,因为我可以浏览到System.Web.Mvc.HtmlHelper并且所有的扩展方法都在那里。更奇怪的是我可以编译并且所有错误都消失了,但是一旦我再次开始编辑它们就会显示出来。我包括

<%@ Import Namespace="System.Web.Mvc" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>

在我的site.master文件中,我发现它在某处提出,但似乎没有帮助。有任何想法吗?知识分子也没有找到扩展方法。

3 个答案:

答案 0 :(得分:4)

首先,检查您是否正确使用RenderPartial方法:

<% Html.RenderPartial(...); %>

其次,检查你的web.config包含:

<system.web>
    <compilation>
        <assemblies>
            <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        </assemblies>
    </compilation>
    <pages>
        <namespaces>
            <add namespace="System.Web.Mvc.Html" />
        </namespaces>
    </pages>
</system.web>

答案 1 :(得分:0)

你使用

吗?

<% Html.RenderPartial("~/Views/Project/Projects.ascx", ViewData); %>

<%=Html.RenderPartial("~/Views/Project/Projects.ascx", ViewData); %>

它应该是第一个,没有“=”。 我不确定这是否会解决它,但我记得他们改变了某种方式。

答案 2 :(得分:0)

另见:'System.Web.Mvc.HtmlHelper' does not contain a definition for 'RenderPartial' - ASP.Net MVC

你可能认为这很愚蠢,但我遇到了同样的问题。我有一个工作的MVC应用程序,运行1.0.0.0,突然它停止工作,给我相同的RenderPartial不在定义中。事实证明,当我疯狂清理我的web.config时,我删除了这一部分。当我重新添加它时,一切都恢复了。我确定这与类扩展在运行时加载的方式有关。

无论如何,将我的web.config重新添加到我的机器上。 ;)

<system.codedom>
    <compilers>
        <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
                     type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <providerOption name="CompilerVersion" value="v3.5"/>
            <providerOption name="WarnAsError" value="false"/>
        </compiler>

        <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4"
                     type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <providerOption name="CompilerVersion" value="v3.5"/>
            <providerOption name="OptionInfer" value="true"/>
            <providerOption name="WarnAsError" value="false"/>
        </compiler>
    </compilers>
</system.codedom>