![]() |
|
IT и Связь Обсуждение "айтишных" вопросов и средств связи |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
My name is Exaybachay
|
![]()
Я уже тут про MVC вопрос задавал и ответов, мягко говоря, получил немного. Может вопрос был глупый - не знаю.
Тем не менее задаю следующий, безнадёжный практически: Ну простые ситуации понятно, есть скажем страничка поиска каких-нить делегатов (я в терминах нашей аппликухи буду, так проще), есть модель из классов представляющих делегатов и всякие связанные с ними объекты, есть вью показывающая форму поиска и результаты, есть контроллер, который подготавливает данные для формы поиска (если надо) и собственно ищет... без чудес, короче URL - www.vasyapupkin.com/delegates/find - напрямую упоминает контроллер и соответствующий его метод. Но есть (у нас) случаи сложнее, когда одна "страничка" содержит много компонентов, мало связанных друг с другом и собственно их набор определяется конфигурацией системы (а точнее - конфигурации соответствующей её части), а не исходным кодом. Пример - страничка показывающая фидбак разных категорий ревьюверов на статью и позваляющая (пере)назначать этих ревьюверов. Страничек таких может быть несколько и в зависимости от того, в какой части системы, с каким контентом и какой категории юзеров та или иная страничка доступна - она может содержать различные компоненты. В нашей доморощенной (знаю знаю, помидорами можно не кидаться) архитектуре фронтенда на старом ASP/VBS это реализовано как layouts - задают общий расклад странички, реализуются XSLT slots - места под блоки функциональности определяются в дефинишнах лайаутов, типа плейсхолдеры. blocks - параметризуемые куски функциональности, реализованные как функции на ASP + XSLT темплейты (ну можно считать controller + view такие, хотя конечно эт будет натяжкой). pages - те самые странички. каждая ссылается на тот или иной лайоут и говорит о том какие его слоты какими блоками и с какими параметрами заполнять. Так вот, хотелось бы не такую архитектуру, но такую гибкость достичь в ASP.NET MVC, обретя при этом все её покайфы (как то прекомпелированный код на вменяемом языке, удобство юнит тестирования контроллеров, минимизация XSLT - а то его отлаживать тяжко и тд и тп). Но что-то я не могу понять как к этому подойти. Вроде как если пытаться калькировать нашу архитектуру, то появится какой-то универсальный контроллер, что сравняет с землёй существенную часть покайфов MVC. В противном случае вроде как выходит, что нужно каким-то образом вызывать несколько контроллеров на один URL... И если про partial views мне вроде более-менее понятно, то вот как это делать... Либо стараться простые "странички" реализовывать специализированными контроллерами (как в примере со поиском делегатов), а сложные (коих на самом деле не так много в системе) - какими-то мета-контроллерами? Короче у меня ощущение что я что-то концептуально недогоняю. Интересно что-нибудь вменяемое почтитать об этом, лучше с примерами. В идеале - на вебе. Кто-нибудь вообще серьёзно ASP.NET MVC занимается? (а да добавлю - пожалуйста не уводите обсужденее в сторону microsoft vs что-то или MVC vs WebForms, ибо это отдельный большой разговор).
__________________
митьки никого не хотят победить |
![]() |
![]() |
Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок |
![]() |
#2 |
My name is Exaybachay
|
![]()
Не ну блин 93 человека посмотрели. Народ, эт я такой глупый вопрос задал или правда никто этим не занимается?!
__________________
митьки никого не хотят победить |
![]() |
![]() |
![]() |
#3 | |
Заслуженный Участник
|
![]() Цитата:
__________________
Жизнь - жестокая штука, и когда у тебя на руках все карты, онa, вдруг, начинает играть в шахматы... Мой ник читается как Эпо!! |
|
![]() |
![]() |
![]() |
#4 |
Пенсионер всея Ирландея
|
![]()
А решения насчёт создания своих controller or view engines не подойдут? Если стандарные не позволяют сделать то что вам нужно. Либо что-то вроде контейнерного класса/классов, неа?
Там похоже прийдётся составить разумную и удобную систему генерации URL в котором будет отражен набор контроллеров на странице в каком-то виде (ну или типа того). Здесь как мне кажется пример близкий к тому что ты хочешь.
__________________
«Борітеся — поборете!» |
![]() |
![]() |
Благодарность от: | KaraNagai (28.04.2011) |
![]() |
#5 | |||
My name is Exaybachay
|
![]() Цитата:
![]() ![]() Цитата:
Цитата:
За линк спасиб.
__________________
митьки никого не хотят победить |
|||
![]() |
![]() |
![]() |
#6 |
Активный Участник
|
![]()
Возможно, отца русской демократии
![]() RenderPartial позволяет в одном view использовать несколько Actions и они могут произвольными типо: <div id="logindisplay"> @Html.Partial("_LogOnPartial", Model) </div> <div id="logindisplay1"> @{Html.RenderAction("MySuperAction", "MyMethod", new {id=Model.someId, prop=Model.Someprop});} </div> Вполне возможно что даже название Action/метода можно параметризовать (например, брать из модели). Эти куски в свою очередь можно положить в секции (это как раз и есть placeholders), используя RenderSection типа как здесь: http://blogs.msdn.com/b/marcinon/arc...-sections.aspx. HTH. |
![]() |
![]() |
Благодарность от: | KaraNagai (04.05.2011) |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщ. |
Дать почитать | Евгения* | Книголюбы | 2 | 01.02.2011 19:05 |
А у кого-нибудь есть взаймы почитать Улисс Джойса на русском, плиз? | Monella | Книголюбы | 11 | 14.01.2010 15:46 |
Mac OS X: старт приложений в фоновом режиме | Georgio | IT и Связь | 3 | 18.03.2008 19:09 |
отсылка СМС из MS Office приложений (было: Датабаза с подвыпердом) | Пегас | IT и Связь | 8 | 27.09.2007 14:56 |
Oracle 8/9/10: книжек почитать хочется | dzher | IT и Связь | 6 | 13.11.2005 16:40 |