MVC Razor RenderPartial 调用在网站中不起作用

发布于 2024-11-18 22:05:57 字数 1658 浏览 3 评论 0原文

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

编译器错误消息:CS1061:“System.Web.WebPages.Html.HtmlHelper” 不包含以下定义 “RenderPartial”并且没有扩展名 方法“RenderPartial”接受 类型的第一个参数 '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 在我的情况下不起作用,因为我使用的布局不会在同一位置重用代码。

I am trying to include some reusable code throughout my website (not web application) via the RenderPartial call @Html.RenderPartial("SomePage.cshtml"). In asp I was just able to use #include virtual="somefile.asp". However, I receive the following error message.

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

I have include all the appropriate references in my web.config file.

    <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>

Is the RenderPartial only available in "Web Applications" and not "Websites"?
Is there a better way to reuse code throughout the site?
@RenderSection does not work in my situation since the layout I'm using does not reuse the code in the same location.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

分开我的手 2024-11-25 22:05:57

我能够通过使用 @RenderPage("SomePage.html") 实现我想要的。只花了两天时间就找到了答案:)

I was able to achieve what I wanted by using @RenderPage("SomePage.html"). Only took 2 days to find the answer :)

美煞众生 2024-11-25 22:05:57

您是否尝试过在命名空间部分下添加

Have you tried adding <add namespace="System.Web.WebPages"/> under the namespace section?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文