MVC Razor RenderPartial 调用在网站中不起作用
我试图通过 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我能够通过使用 @RenderPage("SomePage.html") 实现我想要的。只花了两天时间就找到了答案:)
I was able to achieve what I wanted by using @RenderPage("SomePage.html"). Only took 2 days to find the answer :)
您是否尝试过在命名空间部分下添加
?Have you tried adding
<add namespace="System.Web.WebPages"/>
under the namespace section?