混合剃刀视图和Web表单母版页



我正在尝试做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视图世界中,我错过了什么?

这应该可以工作,只要确保您的部分派生自ViewUserControl:

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

记住在ASP中使用服务器端控件。即使使用WebForms视图引擎,也不推荐使用。NET MVC,你甚至不应该尝试这样做。在ASP。你有布局(母版页面,如果你使用WebForms视图引擎),视图和部分。这是所有。用户控件属于经典的WebForms,而不是ASP。净MVC。

最新更新