Динамически производить Razor Views в Runtime?

Я смотрю на создание веб-настраиваемого механизма компоновки и хотел бы напрямую использовать бритвенный двигатель под капотом.

Предположим, что у меня есть информация, доступная через классы, xml или базу данных - я хочу преобразовать ее в собственный код бритвы во время выполнения (под этим я подразумеваю, что подразумеваю, что мой источник определения контента и структура основана на модели поставщика). Вместо того, чтобы конвертировать xml файл или что-то на лету каждый запрос, я решил, что я мог бы просто написать Razor, и пусть этот механизм просмотра позаботится обо всем.

Можно ли подключить код бритвы непосредственно к движку из источника, который не является файловой системой?

Будут ли какие-либо ошибки, если я динамически генерирую представления и компоновки .cshtml в файлы во время выполнения [и динамически устанавливаю эти представления в действиях контроллера]?

Ответ 1

Это можно сделать. У Razor будет еще несколько моментов, чем классический движок просмотра Webforms, но вот некоторые ресурсы:

http://rebuildall.umbraworks.net/2009/11/17/ASP_NET_MVC_and_virtual_views

Использование пользовательского VirtualPathProvider для загрузки встроенных ресурсов Частичные виды

Сохранение представлений MVC ASP.Net в базе данных

ASP.NET MVC загружает представление Razor из базы данных

Вы создадите пользовательский ViewEngine, который определит, где искать представления. Представления могут храниться в файловой системе, в базе данных или в виде встроенных ресурсов. Прочитайте ссылки, которые я вам предоставил, и он должен вас поймать!