如何在MVC区域内的WebForms项目中使用现有的MasterPage?

时间:2015-04-20 21:11:19

标签: c# asp.net asp.net-mvc razor

我正在尝试使用WebForms项目中的现有MasterPage,并将其与MVC区域一起添加到同一解决方案中。

我已阅读this blog,目前我仍然坚持如何连接两者。我已经在Shared文件夹中添加了扩展方法和他建议的所有项目。

在他的示例Shared/RazorView.aspx文件中,我在此行中收到两个错误。

<% Html.RenderPartial((string) ViewBag._ViewName); %>

`The name 'Html' does not exist in the current context`
`The name 'ViewBag' does not exist in the current context`

如何引用MasterPage或设置视图以便将MasterPage用作部分内容?

1 个答案:

答案 0 :(得分:3)

你几乎就在那里。您只需要配置ASP.NET WebForms以了解Views/web.config中的MVC:

<system.web>
  <pages pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
          pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
          userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <controls>
      <add assembly="System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
    </controls>
    <namespaces>
      <add namespace="System.Web.Mvc.Html"/>
    </namespaces>
  </pages>
</system.web>

为了使RenderPartial扩展方法起作用,您还需要添加名称空间System.Web.Mvc.Html