Конечно можно! Используя проект WebPages от Microsoft, вы можете загружать бритвенные классы так же, как при обычной загрузке UserControl, указав путь к файлу класса / бритвы. Вы получаете обратно экземпляр WebPage , который вы можете выполнить и который даст вам строку, которую вы можете распечатать на своей странице.
Я сделал это сам, реализовал Функциональность Razor для Composite C1 CMS , а исходный код для него находится в свободном доступе с http://compositec1contrib.codeplex.com/. Я выделю здесь важные части.
Убедитесь, что у вас есть поставщик сборки для файлов .cshtml, зарегистрированных в web.config
Убедитесь, что у вас есть необходимые настройки конфигурации system.web.webPages.razor
Создание экземпляра файла .cshtml, подобного этому var webPage = WebPage.CreateInstanceFromVirtualPath(_relativeFilePath);
( см. Документ )
Получите вывод класса Razor следующим образом
var httpContext = new HttpContextWrapper(HttpContext.Current);
var pageContext = new WebPageContext(httpContext, webPage, null);
var sb = new StringBuilder();
using (var writer = new StringWriter(sb))
{
webPage.ExecutePageHierarchy(pageContext, writer);
}
string output = sb.ToString();
Просто выведите строку на страницу WebForms