Все мои взгляды строго напечатаны, как перейти на site.master? - PullRequest
0 голосов
/ 10 февраля 2012

Все мои представления используют строго типизированные модели представления.

Теперь в моем действии контроллеров я хочу установить текст предупреждения, который будет отображаться в моем файле site.master.

Если я установлютекст в моих действиях контроллеров, как это будет видно на сайте site.master?

Я в замешательстве b / c, строго типизированное представление для мастера будет другим.

(MVC2)

Обновление

Кроме того, если я перенаправляю на другое представление, даже если я устанавливаю модель представления, она не будет использоваться, поскольку она перенаправлена, Я знаюУ mvc есть своего рода одностраничный сеанс, как он снова вызывается?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Для всех моих строго типизированных моделей представления я использую общий базовый класс и интерфейс для этого. По умолчанию главная страница получает их.

public class ViewModelBase : IViewModel {
    public string InformationForMasterPage{get;set;}
}
public class ViewModelHomePage : ViewModelBase{
    public string SomeInformationNotNeededForMasterPage{get;set;}
}
public interface IViewModel{
    public string InformationForMasterPage{get;set;}
}

Вверху домашней страницы:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ViewModelHomePage>" %

Тогда для вершины мастер-страницы:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<IViewModel>" %>

А потом глубоко в главной странице:

 <%: Model.InformationForMasterPage %>

Будет работать просто отлично.

0 голосов
/ 10 февраля 2012

В контроллере вы можете сохранить объект в словарях ViewData или ViewBag и получить к нему доступ как из вида, так и из мастера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...