2008-10-31 1 views
5

В веб-формах ASP.NET у нас есть серверные компоненты, которые могут быть инкапсулированы во внешнюю сборку и отправлены как продукт. В ASP.NET MVC у нас нет серверных компонентов, так что лучший вариант для внешних компонентов?Как разработать компоненты «shippable» для ASP.NET MVC?

Оглядываясь вокруг, кажется, что единственный возможный вариант делает метод Html helper, который возвращает кучу html + js, который манипулирует вещами. И если компонент нуждается в некоторой логике, http-модуль, который добавляет новые маршруты и контроллер, определенный в той же внешней сборке для обработки вызовов ajax.

В противном случае RenderPartial возвращает только вид ... но вид реальный файл, так что трудно герметизировать во внешнем сборке, если он не добавляется в файл ресурсы, а затем извлекается с помощью поставщика путем, который выглядит в файл ресурсов вместо реального места на диске.

Или есть другие варианты, которые я не рассматриваю?

Thx Симо

+0

Любой прогресс на этом? Встраивание комплексной функциональности (включая интерактивность с учетом истории) на странице MVC без привлечения остальной части страницы является разумным и общим желанием. Единственная альтернатива, которую я вижу, чтобы требовать использования страницы для отслеживания состояния каждой строки запроса, является ужасной. – 2010-10-26 21:28:34

+0

@ Джейсон: что ужасно с помощью ajax и строки запроса для обновления частей страницы? – jgauffin 2010-12-21 09:19:34

ответ

0

ASP.NET MVC полностью поддерживает пользовательские элементы управления и пользовательских элементов управления в дополнение к Html помощников. Ничто не мешает вам разрабатывать пользовательский элемент управления (например, для фантазийной сетки), инкапсулируя его в сборку и отправляя. Я пропустил точку вопроса?

1

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

Но это будет работать только для первого рендеринга: что если я хочу иметь сортировку сетки/пейджинговую/редактируемую и так далее?

2

Поскольку логика на стороне сервера полностью отделена от логики на стороне клиента, не очень полезно создавать как серверный, так и клиентский компонент для Asp.Net MVC. Вы можете лучше создавать чистые компоненты Html/Javascript и использовать их на нескольких платформах (Ruby on rails, php, python, java) и учебном пособии по их интеграции на нескольких платформах. Платформа, на которой вы разрабатываете, не asp.net mvc, а веб-браузеры в целом! Хорошим источником вдохновения является Ext JS Framework

0

Попробуйте PortableArea от MVCContrib. Кажется, это то, что вы ищете. Даже если это не так, исходный код может помочь вам достичь цели.

Демонстрация видео: http://www.viddler.com/explore/c4mvc/videos/11/