混合 Razor 视图和 Web 表单母版页

发布于 2024-12-04 19:13:23 字数 766 浏览 1 评论 0原文

我正在尝试执行 Scott Hanselman 下面描述的操作:

http://www.hanselman.com/blog /MixinRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.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 视图世界中工作时我错过了什么?

I'm attempting to do what Scott Hanselman describes below:

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

I have a Web Form user control with code behind that is called from the Web Form and Razor Master Pages that is not working in the Razor layout:

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

The user control contains the following:

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

I get the error:
The view at '~/Controls/MasterPageMenu.ascx' must derive from ViewPage, ViewPage, ViewUserControl, or ViewUserControl.

What have I missed in getting this to work in the Razor view world?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秉烛思 2024-12-11 19:13:23

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

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

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

This should work, just make sure that your partial derives from ViewUserControl:

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

Remember that using server side controls in ASP.NET MVC is not something that's recommended even with the WebForms view engine and not something that you should even be attempting to do. In ASP.NET MVC you have layouts (master pages if you use WebForms view engine), views and partials. That's all. User controls belong to classic WebForms, not to ASP.NET MVC.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文