Какое место для серверных элементов управления в ASP.Net MVC? - PullRequest
3 голосов
/ 31 марта 2009

Какова рекомендуемая замена серверных элементов управления ASP.Net в новом ярком мире ASP.Net MVC?

По моему мнению, одной из лучших функций ASP.Net является возможность написания серверных элементов управления (хотя, по общему признанию, с моделью событий ужасно иметь дело). Если эти элементы управления самонаселены, то они могут быть разделены между различными проектами с минимумом суеты - вы просто ссылаетесь на сборку, в которой находится серверный элемент управления, и переносите ее в aspx. Контроль делает все остальное. Это очень хорошо вписывается в мир виджетов и обеспечивает эффективное повторное использование кода. Как можно достичь того же в MVC?

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

Наконец, могу ли я использовать свои старые (без обратной передачи) серверные элементы управления в проектах MVC?

Ответы [ 2 ]

3 голосов
/ 31 марта 2009

Вы можете имитировать поведение элементов управления без обратной связи с помощью методов расширения Html-помощника. Так же, как Html.TextBox () и т. Д., Вы можете написать свои собственные и, если хотите, инкапсулировать их в свой собственный проект.

Если вы написали элементы управления, которые просто выводят HTML, преобразовать их в Html-помощники не составит труда.

1 голос
/ 31 марта 2009

Ближайший Asp.Net MVC доходит до серверных элементов управления - это частичные запросы. В частичном запросе вызывается метод действия MVC, и его выходные данные добавляются к текущему представлению. К сожалению, официальная поддержка этого (Html.RenderAction) в настоящий момент находится в сборке фьючерсов.

Если использование сборки фьючерсов для вас невозможно, блоггер по имени Стив Сандерсон написал статью о реализации аналогичной функциональности:
http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

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