2010-02-18 2 views
2

Мне интересно, можно ли визуализировать ViewPage внутри ViewPage.ASP.NET MVC ViewPage, отображаемый в ViewPage

Как правило, вы бы это:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<my_object>"%> 

, а затем на странице вы можете сделать пользовательский элемент управления:

<%Html.RenderPartial("~/Views/Shared/mycontrol.ascx", this.ViewData);%> 

Однако я хотел бы вынести ViewPage в ViewPage , Причина? Я работаю над очень крупным проектом с 10+ разработчиками и много написанного кода. Уже написана большая часть, которая динамически отображает пользовательский интерфейс, но есть 15+ методов, которые проходят вокруг ViewPage.

Другими словами, я звоню это в ViewPage:

<%this.RenderUI(); 

И метод заглушкой это:

public static void RenderUI(this ViewPage viewPage) 

Поэтому для того, чтобы повторно использовать большинство кода, я например, вызывать вызов this.RenderUI() в собственный ViewPage, но затем включать это на некоторые ViewPages. Это волосатая ситуация, и это звучит излишне, но есть много переделов кода, которые нужно было бы сделать иначе. Кто-нибудь знает, может ли это быть достигнуто?

ответ

1

Извлеките ваш подъярус в главном окне, используя RenderAction() вместо RenderPartial(). Это позволяет вам сохранять ваш контроллер и просматривать для каждого поднабора и «вводить» вывод каждой комбинации контроллеров/подзонов в любой основной вид в выбранном вами месте на главном экране.

Эта схема должна облегчить некоторую сложность управления каждым из видов и подсмотров. Это подход, напоминающий «веб-части» в традиционных ASP.NET или SharePoint. Это более модульный подход, который обеспечивает лучшее повторное использование.

+0

Спасибо, мне нравится эта идея. Я попробую. Есть ли у кого-нибудь еще предложения? – macca1