Как использовать несколько движков представления в приложении ASP.NET MVC

Я хотел бы использовать два механизма просмотра в моем веб-приложении asp.net mvc. Первый - это движок вида Brail из проекта MVCContrib, а другой - мой пользовательский движок для генерации кода JavaScript. Однако я не могу настроить приложение для использования обоих движков. Я хотел бы использовать расширение файла представления, чтобы определить, какой движок должен обрабатывать запрос - .brail для движка Brail - .json - для моего собственного движка

Когда я добавляю два движка в коллекцию ViewEngines в global.asax.cs, система всегда ищет представления * .brail и выдает исключение, если оно не находит. Он никогда не ищет мои представления * .json ... Это проблема с ASP.Net mvc framework, с механизмом просмотра Brail или с моим кодом? Как это должно быть обработано?

10.12.2008 17:19:23
2 ОТВЕТА

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

2
10.12.2008 19:57:06
Это не нужно. ViewEngines уже сообщают платформе, с какими расширениями они могут работать.
Craig Stuntz 11.12.2008 14:22:14
Viewengines сообщают платформе, какие расширения файлов они обрабатывают в вашей собственной системе. Он не говорит о расширении представлений, он говорит об изменении движка представлений в зависимости от расширения запроса.
Min 15.12.2008 22:18:04

Нравится.

РЕДАКТИРОВАТЬ: Если ваш пользовательский ViewEngine не обрабатывает * .json, у вас вполне может быть ошибка в вашем движке представления. Самый простой способ справиться с этим - это ввести подтип VirtualPathProviderViewEngine и установить MasterLocationFormats, ViewLocationFormats и PartialViewLocationFormats в конструкторе. Посмотрите исходный код для WebFormViewEngine для очень простого примера. Таким образом, фреймворк делает всю работу за вас.

3
11.12.2008 14:26:22