混合Razor视图和Web窗体母版页

时间:2011-09-13 20:07:48

标签: asp.net-mvc-3 webforms razor master-pages

我正在尝试做Scott Hanselman在下面描述的内容:

http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx

我有一个带有代码的Web窗体用户控件,该窗口是从Web窗体和Razor母版页调用的,它不能在Razor布局中工作:

<div id="navtop">
    @{ Html.RenderPartial("~/Controls/MasterPageMenu.ascx"); }
</div>

用户控件包含以下内容:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MasterPageMenu.ascx.cs" Inherits="Controls.MasterPageMenu" %>

我收到错误: '〜/ Controls / MasterPageMenu.ascx'的视图必须从ViewPage,ViewPage,ViewUserControl或ViewUserControl派生。

我在Razor视图世界中使用了什么?

1 个答案:

答案 0 :(得分:4)

这应该可行,只需确保您的部分派生自ViewUserControl:

<%@ Control 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl" 
%>

请记住,即使使用WebForms视图引擎,也不建议使用ASP.NET MVC中的服务器端控件,而不是您应该尝试做的事情。在ASP.NET MVC中,您有布局(如果使用WebForms视图引擎,则为母版页),视图和部分。就这样。用户控件属于经典WebForms,而不属于ASP.NET MVC。