[ASP.NET MVC] Как правильно передавать инфу между вьюхами?
RenderPartial("View_2", x)
2 - засунуть значение во ViewBag
P.S. Вообще говоря, ты не должен этого хотеть
Твой контроллер, по идее, должен необходимую инфу сложить в модель, и вьюхи - эту модель отобразить.
Твой контроллер, по идее, должен необходимую инфу сложить в модель, и вьюхи - эту модель отобразить.Так и есть, НО это верно для вьюх которые вызываются иерархически из той вьюхи которую возвращает контроллер
Return View;
Но есть ещё такая вьюха как Site.Master из которой тоже фигова туча вьюх вызывается - вот как из контроллера данные в них передать?
я детали уже не помню, но первый предложенный вариант, имхо, самый правильный. Это же не просто модель, а ViewModel, т.е. специальная хрень, которая обслуживает View.
я детали уже не помню, но первый предложенный вариант, имхо, самый правильный. Это же не просто модель, а ViewModel, т.е. специальная хрень, которая обслуживает View.Не очень понятно только, как она поможет мне данные из контроллера передать в Site.MAster..
начинается он вот такими вот словами:
<%@ Master Language='C#' Inherits='System.Web.Mvc.ViewMasterPage' %>
P.S. Сценарий “мастер пейдж” фактически колбек с колбеками, и через лямбды это реализуется естественным образом (без кастов). Но почему-то в Razor-е лямбды нормально не поддержали. Читал, что чувак из Mono по этой причине написал свою view engine .
я не очень понял детали твоей ситуации, а разбираться не охота, могу сказать следующее.А что именно не понятно, кстати?
Есть данные которые надо передать из контроллера в мастер пейдж.
Щас делаю так - в контроллере Session['key']=value;
В мастерпейдже юзаю Session['key']
Думал, может есть что по лучше для этого =)
ну, как минимум, лучше ViewBag.
Session['key']тогда уж лучше ViewData["key"]
updated: или лучше ViewBag из MVC 3
<%@ Master Language='C#' Inherits='System.Web.Mvc.ViewMasterPage<MasterModel>' %>
а для вьюх мастера модели ViewModel1 наследовать от MasterModel
или я посыл про касты неверно понял?
Мне такое не требовалось, но если бы стало нужно, то я, наверно, определил бы интерфейс IViewModel с нужными пропертями, и все model-ы заставил бы этот интерфейс реализовывать.
Ну или можно как вот тут: http://blog.gauffin.org/2011/09/getting-information-into-the...
ну без кастов если, то никто не мешает стронглитайп сделать модель мастера и там хранить необходимые для мастера данныеда, сказав "нельзя" я был не прав. Если через наследование от класса или интерфейса это работает, то классно ! Я, видимо, с чем-то перепутал, давно это было , но что-то мне не нравилось мастер пейджами.
<%@ Master Language='C#' Inherits='System.Web.Mvc.ViewMasterPage<MasterModel>' %>
Оставить комментарий
356ft85
Вопрос по ASP.NET MVC - Как правильно передавать инфу между вьюхами?Допустим есть какая нибудь партиальная вьюха, в SiteMaster'e вызывается через RenderPartial ("ВЬЮХА_1");
Допустим есть какая нибудь партиальная вьюха №2 , которая вызывается в основной (той, которую контроллер возварщает как Return View; ) вьюхе через RenderPartial ("ВЬЮХА_2");
если в 1ой вьюхе напишу int x=5; как потом это значение получить во второй вьюхе , чтоб сделать с ним тчо нибудь, напрмиер Reponse.Write(x); ?