Asp.net MVC 3 внедряет UserControl для TemplateHint - PullRequest
1 голос
/ 07 октября 2010

Можно ли каким-то образом использовать внедрение зависимостей в Asp.net MVC 3 (используя Forms ViewEngine) для внедрения UserControls из другой библиотеки?Я уже использую MEF для загрузки некоторых других вещей в мое MvcApplication.

Мне это нужно, потому что я хочу построить систему с расширяемой системой типов.Я хочу, чтобы поставщик типов мог внедрять пользовательские элементы управления для предоставленного типа.У меня уже есть собственный MetadataProvider, который знает, как обрабатывать предоставленные типы (он устанавливает свойство ModelMetadata.TemplateHint).

Вопрос в том, где я могу подключиться с помощью MEF, чтобы TemplateHint был правильно обработан, ипользовательский элемент управления отображается при вызове Html.EditorForModel

1 Ответ

2 голосов
/ 07 октября 2010

Я не могу придумать, как это сделать, используя текущую инфраструктуру Service Locator в бета-версии MVC 3.Хотя я могу подумать о 2 альтернативных аппроксимациях:

  1. Имеет шаблон редактора, который вместо рендеринга делегатов HTML в ваши пользовательские элементы управления и возвращает их вывод.выполнить поиск для частичных представлений (пути будут иметь форму «EditorTemplates / YourTypeName» и т. д.) и вернуть представление, которое знает, как общаться с вашими пользовательскими элементами управления.
...