Динамически изменяющийся мастер-шаблон в ASP.NET MVC - PullRequest
5 голосов
/ 07 ноября 2008

У меня есть требование для поддержки разных главных страниц моего приложения (ASP.NET MVC). Какой рекомендуемый способ:

  1. Передать имя главной страницы представлению из.
  2. Сохраните главную страницу (во время сеанса или что-то в этом роде), чтобы она оставалась при посещении пользователя.

Ответы [ 3 ]

9 голосов
/ 20 января 2009

Используйте пользовательский базовый контроллер и вместо него наследуйте:

Public Class CustomBaseController
    Inherits System.Web.Mvc.Controller

    Protected Overrides Function View(ByVal viewName As String, ByVal masterName As String, ByVal model As Object) As System.Web.Mvc.ViewResult

       Return MyBase.View(viewName, Session("MasterPage"), model)

    End Function

End Class

Я установил свою переменную Session в global.asax Session_Start:

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)

//programming to figure out your session
Session("MasterPage")="MyMasterPage"

End Sub
0 голосов
/ 07 ноября 2008

Почему бы не сохранить главную страницу в профиле пользователя? Затем просто измените его в событии PreLoad.

http://www.odetocode.com/articles/440.aspx

0 голосов
/ 07 ноября 2008

вы можете выбросить имя главной страницы в сеанс, но сеансы ненадежны. я бы рекомендовал вместо этого бросить его в БД.

Как только вы окажетесь на странице, вы можете изменить / настроить главную страницу, открыв файл page.masterpagefile это строка; просто передайте имя мастера.

...