2011-05-13 21 views
3

是否可以在webforms web應用程序中使用Razor引擎(razorengine.codeplex.com)?我正在使用文件來定義模板,例如RazorEngine:可以在Webforms應用程序中使用嗎?

Sample.cshtml

<h1>Hello</h1> 

或者sample2.cshtml(與繼承,使智能感知)

@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:名稱「語境」不存在於當前存在背景

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

它甚至有可能使用剃刀引擎以這種方式?

回答

0

這個問題是不相關的以任何方式剃刀引擎。我在我的CMS中使用了一個參數,它恰好是一個保留字(無證!)。如果使用path作爲參數名稱,系統本身也使用它,則可能會導致一些非常奇怪的結果...如果參數值確實是導致文件的路徑,那麼結果會更多...

0

我發現用剃刀與母版頁/局部模板的一些信息:

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

雖然我不認爲你可以web表單中通常使用它。

但是,ScottHa在NuGet上放置了一個項目,這使得在WebForms應用程序中啓用MVC變得更加容易,所以如果您只是想在您的應用程序中使用它,可能會很有用。他在的NuGet在混合與菲爾哈克交談demo'd這樣的:

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

相關問題