Я нарушаю MVC? - PullRequest
       1

Я нарушаю MVC?

1 голос
/ 28 апреля 2011

Этот вопрос в основном для моего собственного любопытства, так как я понимаю, что шаблоны архитектуры существуют для того, чтобы помогать нам, а не контролировать нас, но мне любопытно узнать, является ли способ, которым я структурировал этот небольшой проект для домашних животных, правильную реализациюархитектура MVC.

Я привык к разработке в браузере для веб-приложений, где браузер действует как своего рода «главный контроллер» (если вы нажмете на ссылку, он изменит мне представления, не имеязакодировать что-нибудь лишнее).Однако я работаю над настольным приложением для этого любимого проекта, и мне любопытно, как реализовать «браузер», если хотите.Я оглянулся назад на какой-то проект Flash, над которым работал, и заметил, что у них есть код для обработки созданных представлений в корневом классе проекта.Имеет ли это смысл?Еще одна мысль, которая у меня возникла, заключалась в том, чтобы создать класс ViewPort или что-то такое, что в основном использовало бы эту функциональность из корневого класса, и в основном действовало как комбинированное представление / контроллер (или я даже мог сделать класс контроллера, который бы согласился с ним)и изменить этот класс между всеми представлениями, которые мне нужны для навигации.Но я также не был уверен, имеет ли это смысл.

Существует ли стандартный способ управления вашими представлениями в MVC?Используете ли вы контроллер для корневого окна, которое затем отображает ваши различные представления (которые также имеют свои собственные контроллеры?) Как я уже сказал, это больше для моего собственного любопытства, поэтому я ценю любые ответы.

Ответы [ 2 ]

0 голосов
/ 28 апреля 2011

Пассивный контроллер или Supervising лучше подходят для приложений winforms.

http://msdn.microsoft.com/en-us/library/ff647543.aspx

0 голосов
/ 28 апреля 2011

Вы можете использовать контроллер для корневого окна в MVC, если я правильно понимаю ваше сравнение.

Так что в случае, когда у вас есть общая страница макета, у вас есть представление, которое будет автоматически загружаться для каждого представления, которое использует этот файл _layout.cshtml.

Теперь, если у вас есть, например, окно заказа клиента, вы можете иметь все это 1. файл layout.cshtml для общего общего вида вашего сайта 2. главный вид скажем / MySite / CustomerOrder / Index / 656 - содержимое, созданное вашим файлом CustomerController.cs, методом с именем Index. 3. В вашем представлении /Views/CustomerOrder/Index.cshtml вы можете отменить вызов, чтобы показать другие представления. RenderAction ("Index", "CustomerOrderHistory", новый {customerId=@Model.CustomerId} Это проходит через контроллер с именем CustomerOrderHistoryController.cs и ищет метод с именем Index или же RenderPartial ( "CustomerHistory") Он переходит непосредственно к представлению, копируется и передает ему модель текущего представления.

Таким образом, чтобы ответить на ваш вопрос, у вас может быть основной вид с другими представлениями в нем ... но это зависит от того, хотите ли вы сделать это таким образом - вам это не нужно.

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