RazorEngine: возможно ли использовать в приложении Webforms? - PullRequest
3 голосов
/ 13 мая 2011

Можно ли использовать движок Razor ( razorengine.codeplex.com ) в веб-приложении веб-формы?Я использую файлы для определения шаблонов, например

Sample.cshtml

<h1>Hello</h1>

или sample2.cshtml (с наследниками для включения intellisense)

@inherits SomeBaseClass<SomeModelClass>
<h1>Hello @Model.SomeProperty</h1>

В приложениизапусти, я скомпилирую шаблоны:

//get files and loop
RazorEngine.Razor.Compile(templateString, razorPath);

В коде контроля пользователя я загружаю / анализирую шаблон:

RazorEngine.Razor.Run<SomeModelClass>(model, razorPath);

Проблема:

Sample.cshtml даетследующее исключение:

Тип 'ASP._Page_razor_Sample_cshtml' не наследуется от 'System.Web.UI.UserControl'.

Sample2.cshtml дает следующее исключение (код, где происходит исключение, приведен ниже, извлеченный из скомпилированного исходного кода cshtml ...):

CS0103: имя 'Context' не существует в текущем контексте

Line 37:         protected ASP.global_asax ApplicationInstance {
Line 38:             get {
Line 39:                 return ((ASP.global_asax)(Context.ApplicationInstance));
Line 40:             }
Line 41:         }

Можно ли использовать двигатель Razor таким образом?

Ответы [ 2 ]

0 голосов
/ 16 мая 2011

Эта проблема никак не связана с двигателем Razor.Я использовал параметр somehwere в моей CMS, который оказался зарезервированным словом (недокументированным!).Использование path в качестве имени параметра, когда оно также используется самой системой, может привести к довольно странным результатам ... Тем более, если значение параметра действительно является путем, ведущим к файлу ...

0 голосов
/ 13 мая 2011

Я нашел некоторую информацию об использовании Razor с мастер-страницами / частями:

http://www.eworldui.net/blog/post/2011/01/07/Using-Razor-Pages-with-WebForms-Master-Pages.aspx

Хотя я не думаю, что вы можете использовать его в основном в веб-формах.

Однако Скотт разместил проект на NuGet, который упростил включение MVC в приложении WebForms, так что это может быть полезно, если вы просто пытаетесь использовать его для определенных вещей в вашем приложении.Он продемонстрировал это в своей беседе с NuGet с Филом Хааком в Mix:

http://nuget.org/List/Packages/AddMvc3ToWebForms

...