2013-03-04 3 views
0

В WebPages Razor v1 это можно назвать функции кросс cshtml-страницы, используя следующий синтаксис:Использование CreateInstanceFromVirtualPath в MVC и WebPages 2

@{ 
    dynamic hlp = WebPage.CreateInstanceFromVirtualPath("/newhelper.cshtml"); 
} 
@hlp.SomeHelper("foo") 

То же самое не представляется возможным в Бритвы v2 (нуль отсчета ошибок). И не в MVC (что, вероятно, менее удивительно). Я хочу знать, есть ли другой способ сделать то же самое в Razor v2.

ответ

0

Выполнение кода, показанного в вопросе, не поддерживается - оно просто пытается имитировать некоторую логику, которая может или не может быть эквивалентна тому, что действительно происходит с компиляцией Web-страниц/Razor.

Помощники веб-страниц должны размещаться в файлах CSHTML в ~/App_Code. Код должен быть доступен для всех других страниц просмотра в приложении.

+0

Хорошо, спасибо за ответ. Я добавил «взломать» как тег. Вместо этого я использую RazorEngine и/или Roslyn. – joeriks

+0

Я пошел в другом направлении - используя RenderPage с немного сахара: http://joeriks.com/2013/03/06/displaytemplates-in-mvc-and-webpages-razor/ – joeriks

Смежные вопросы