ASP.NET MVC передает строго типизированные данные на главную страницу - PullRequest
6 голосов
/ 02 апреля 2009

Дублирование

Передача данных на главную страницу в ASP.NET MVC

Должна ли главная страница ASP.NET получать данные из представления?

Я следовал этому методу для передачи общих данных на site.master. Однако для этого требуется конкретное приведение ViewData, и я не люблю везде использовать строковые идентификаторы. Это лучший способ сделать это или есть другой способ?

http://www.asp.net/learn/MVC/tutorial-13-cs.aspx

Спасибо

Ответы [ 2 ]

8 голосов
/ 02 апреля 2009

Вы можете создать базовый класс, от которого наследуются все ваши модели:

class MasterModel {
     // common info, used in master page.
}

class Page1Model : MasterModel {
     // page 1 model
}

Тогда ваша главная страница наследует от ViewMasterPage<MasterModel>, а ваша Page1.aspx наследует от ViewPage<Page1Model> и устанавливает Site.master в качестве своей главной страницы.

2 голосов
/ 27 мая 2010

Поскольку я немного боролся, вот мой вклад:

class ModelBase {
     // common info, used in master page.
}

class Page1Model : ModelBase {
     // page 1 model
}

public class ControllerBase : Controller
{
    protected override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var model = ViewData.Model as ModelBase;

        // set common data here

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