ASP.NET MVC - разные модели для главной страницы и страницы просмотра
У меня есть строго типизированная главная страница, но я хочу использовать другой тип для некоторых дочерних страниц.
Например, на главной странице...
<%@ Master ... Inherits="System.Web.Mvc.ViewMasterPage<MyWeb.Models.Client>" %>
Клиент уже является составным объектом, поэтому на некоторых дочерних страницах я могу поддерживать одну и ту же модель и просто ссылаться на объекты-члены. Но на других страницах это не имеет смысла делать, поскольку я имею дело с другой моделью, например, с дочерней страницей, которая касается модели Customer.
Моя главная страница по-прежнему нуждается в модели клиента, но детские представления будут работать с разными моделями целиком. Проблема в том, что в контроллере вы можете передать только одну объектную модель в представление. Есть ли способ передать одну модель ведущему, а другой - к представлению? Спасибо!
Ответы
Ответ 1
Вы можете создать иерархию и передать базовую модель на главную страницу и дочерние модели на свои представления.
public class BaseModel
{
}
public class ChildModelOne : BaseModel
{
}
public class ChildModelTwo : BaseModel
{
}
Таким образом, мастер-просмотр будет видеть только свои собственные данные (доступные в классе основной модели), в то время как ваши представления будут иметь доступ к расширенной информации, доступной в классах дочерних моделей.
Очень просто.