Управление сервером и MVC - PullRequest
       14

Управление сервером и MVC

3 голосов
/ 25 ноября 2008

Я был убежден, без исследований, что серверные элементы управления утрачены в модели MVC. Мне обоим очень любопытно узнать, правда ли это, и если да, как можно достичь чего-то, эквивалентного элементу управления Repeater, или любому другому представлению, точная структура которого зависит от содержимого модели?

Ответы [ 6 ]

2 голосов
/ 28 ноября 2008

ASP.NET MVC не поддерживает ViewState и postbacks, поэтому все элементы управления asp.net, основанные на этом, не будут работать. Контроль повторителя - один из немногих, которым он не нужен, поэтому он работает.

Эквивалент управления mvc - это классы HtmlHelper, которые генерируют html для вас. Коллекция htmlhelpers довольно велика, но вы не найдете автоматически эквиваленты для обычных элементов управления веб-формами из-за различной природы веб-форм и asp.net mvc.

MVCContrib является проектом contrib для asp.net mvc, поэтому вы также найдете там больше htmlhelpers http://www.codeplex.com/MVCContrib

Также довольно легко накатить свои собственные методы htmlhelper

Хорошая отправная точка для ASP.NET MVC находится здесь http://www.asp.net/mvc/

1 голос
/ 28 ноября 2008

Я не согласен, Юрий, что контроль бесполезен. Набор элементов управления MVC с привязкой к данным, легко связан с ViewData, SANS упорного ID переписывания, без опоры на противной ViewState или обратной передачи дряни и полный контроль над шаблонами (по умолчанию это разумные разметкам), будет отличное дополнение к структуре MVC. Элементы управления являются очень мощной и полезной концепцией, которая может значительно увеличить время разработки, и их не следует сбрасывать со счетов исключительно потому, что они несут некоторый эмоциональный багаж из уродливых старых дней веб-форм! :)

1 голос
/ 25 ноября 2008

Правильный, подобный рельсам MVC не полностью поддерживает серверные элементы управления со всеми их беспорядочными состояниями просмотра и т. Д. Вы можете использовать некоторые из них, но на самом деле это не должно беспокоить. Вы можете повторно использовать части пользовательского интерфейса, используя компоненты представления, и, возможно, использовать хорошие клиентские виджеты из jQuery UI или Yahoo UI для создания многофункциональных сеток и т. Д. Что касается ретранслятора ... "foreach" - ваш друг:)

0 голосов
/ 28 ноября 2008

Я предполагаю, что будут какие-то умные вспомогательные методы, такие как html.textbox или аналогичные, и они будут рисовать таблицу / сетку, например, на основе заданной коллекции объектов.
Вы можете упаковать свой помощник html в пользовательский элемент управления asp и использовать его в любом приложении mvc ...
Некоторые думают, что это обычные серверные элементы управления asp.net, но без представления, событий и других вещей, зависящих от жизненного цикла страницы.

0 голосов
/ 25 ноября 2008

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

Модель. Модель управляет поведением и данные домена приложения, отвечает на запросы о предоставлении информации о его состоянии (обычно из вид), и отвечает на инструкции изменить состояние (обычно из контроллер).

вид. Представление управляет отображением информация.

контроллер. Контроллер интерпретирует мышь и клавиатура от пользователь, информируя модель и / или изменить, если необходимо.

0 голосов
/ 25 ноября 2008

Это неверно, вы можете по-прежнему использовать элементы управления сервером. Механизм, который анализирует / обрабатывает представления, по-прежнему является той же средой выполнения ASP.NET, которую использует веб-формы.

Пример с использованием элемента управления Repeater.

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