Смешивание видов бритвы и главных страниц веб-форм - PullRequest
2 голосов
/ 14 сентября 2011

Я пытаюсь сделать то, что Скотт Хансельман описывает ниже:

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

У меня есть пользовательский элемент управления веб-формы с кодом, который вызывается из веб-формы и главных страниц 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 Ответ

4 голосов
/ 14 сентября 2011

Это должно сработать, просто убедитесь, что ваша частичная часть получена из ViewUserControl:

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

Помните, что использование серверных элементов управления в ASP.NET MVC - это не то, что рекомендуется даже с движком представления WebForms, и это не то, что вы даже должны пытаться делать. В ASP.NET MVC у вас есть макеты (главные страницы, если вы используете механизм просмотра WebForms), представления и частичные. Это все. Пользовательские элементы управления принадлежат классическим веб-формам, а не ASP.NET MVC.

...