我正在尝试做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视图世界中使用了什么?
答案 0 :(得分:4)
这应该可行,只需确保您的部分派生自ViewUserControl:
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl"
%>
请记住,即使使用WebForms视图引擎,也不建议使用ASP.NET MVC中的服务器端控件,而不是您应该尝试做的事情。在ASP.NET MVC中,您有布局(如果使用WebForms视图引擎,则为母版页),视图和部分。就这样。用户控件属于经典WebForms,而不属于ASP.NET MVC。