我正在尝试执行 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”中的 View 必须派生自 ViewPage、ViewPage、ViewUserControl 或 ViewUserControl。
在 Razor View 世界中让它发挥作用时我错过了什么?
最佳答案
这应该可行,只需确保您的部分派(dispatch)生自 ViewUserControl:
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl"
%>
请记住,即使使用 WebForms View 引擎,也不推荐在 ASP.NET MVC 中使用服务器端控件,而且您甚至不应该尝试这样做。在 ASP.NET MVC 中,您有布局(如果您使用 WebForms View 引擎,则为母版页)、 View 和部分。就这样。用户控件属于经典 WebForms,而不是 ASP.NET MVC。
关于asp.net-mvc-3 - 混合 Razor View 和 Web 表单母版页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407801/