Как я могу установить мастер-страницу программно под MVC2 - PullRequest
3 голосов
/ 17 ноября 2010

В простом ASP.NET это простая работа ... просто переопределите Page_PreInit и готово!

но как мне сделать это в ASP.NET MVC2 ?

Ответы [ 2 ]

5 голосов
/ 17 ноября 2010

В ASP.NET MVC еще проще, просто передайте имя главной страницы в качестве второго параметра:

return View("MyView", "MyMasterPage");

Конечно, вы также можете создать свой собственный System.Web.Mvc.ViewPage и изменить там главную страницу.

2 голосов
/ 17 ноября 2010

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

protected override ViewResult View(string viewName, 
                                   string masterName, object model)
{

    // we share some views that aren't partialviews
    // therefore, we have to ensure that the Shareholder master template
    // is ALWAYS attached to the logged in user if they aren't an admin user
    bool userIsAdmin = IsAuthorised("Admin");

    if (!userIsAdmin) // then flip the masterpage to Shareholder.Master
    {
        masterName = "Shareholder";
    }

    return base.View(viewName, masterName, model);
}

еще один способ повеситьВы сами, я имею в виду кожу кошки :) 1004 *

...