MVC Razor RenderPartial呼叫在网站中不起作用

时间:2011-07-06 18:56:54

标签: asp.net-mvc razor renderpartial

我试图通过RenderPartial调用@ Html.RenderPartial(“SomePage.cshtml”)在我的网站(而不是Web应用程序)中包含一些可重用的代码。在asp我只能使用#include virtual =“somefile.asp”。但是,我收到以下错误消息。

  

编译器错误消息:CS1061:'System.Web.WebPages.Html.HtmlHelper'   不包含的定义   'RenderPartial',没有扩展名   方法'RenderPartial'接受a   类型的第一个参数   'System.Web.WebPages.Html.HtmlHelper'   可以找到(你错过了吗?   使用指令或程序集   引用?)

我在web.config文件中包含了所有适当的引用。

    <compilation debug="true" targetFramework="4.0">
        <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" />
        </assemblies>
    </compilation>       
    <pages>
        <namespaces>
            <add namespace="System.Web.Mvc"/>
            <add namespace="System.Web.Mvc.Html"/>
            <add namespace="System.Web.Routing"/>
            <add namespace="System.Collections.Generic"/>
        </namespaces>
    </pages>

RenderPartial仅适用于“Web应用程序”而非“网站”吗? 有没有更好的方法在整个网站中重用代码?
@RenderSection在我的情况下不起作用,因为我正在使用的布局不会在同一位置重用代码。

2 个答案:

答案 0 :(得分:3)

通过使用@RenderPage(&#34; SomePage.html&#34;),我能够达到我想要的效果。只花了2天才找到答案:)

答案 1 :(得分:1)

您是否尝试在命名空间部分下添加<add namespace="System.Web.WebPages"/>