Как использовать динамическую мастер-страницу в ASP.NET MVC RC 1.0 - PullRequest
1 голос
/ 10 марта 2009

Я не знаю, как использовать динамическую мастер-страницу в ASP.NET MVC RC 1.0. Пожалуйста, помогите!

Ответы [ 3 ]

8 голосов
/ 28 марта 2009

Вы можете указать имя главной страницы при использовании вспомогательного метода View ():

return View("About", "AlternateMaster", model);

AlternateMaster будет преобразован в ~ / Views / Shared / AlternateMaster.master

Нашел это здесь

3 голосов
/ 17 февраля 2010

Я получил это для работы, создав базовый контроллер, который обрабатывал событие OnActionExecuted. В OnActionExecutedevent я назначаю главную страницу. Затем я заставил все остальные контроллеры наследовать от базового класса.

public class BaseController : Controller
{
     protected override void OnActionExecuted(ActionExecutedContext filterContext) {
         var action = filterContext.Result as ViewResult;
         if (action != null) {
             action.MasterName = MyApp.Properties.Settings.Default.Theme;
         }  

         base.OnActionExecuted(filterContext);
     }
}

Я написал пост об этом , если вы хотите более подробно

2 голосов
/ 19 марта 2009

Существует разумно поддерживаемое решение, обсуждаемое на http://forums.asp.net/p/1394235/2991293.aspx, где вы создаете общего потомка мастера сайта и используете его для всех своих собственных просмотров. Есть также запись CodeProject, которая выглядит интересной и использует пользовательский ViewEngine на http://www.codeproject.com/KB/aspnet/ASPNETMVCDynamicThemes.aspx.

Мне тоже нужно сделать это, но я еще не пробовал ни одного решения, поэтому у меня пока нет ощущения, что лучше в целом. IMO, динамическое создание обложек является важнейшей функцией MVC, особенно для персонализации пользователей.

...