2017-02-25 85 views
0

我有一個asp.net核心1.1項目,我需要獲取包含標籤助手的cshtml視圖的編譯C#代碼。如何從asp.net核心中的cshtml視圖獲取編譯的C#代碼?

我知道的可能性precompile the razor views,,但這並沒有幫助,因爲它生成一個dll包含對應於視圖的IL代碼而不是C#代碼

我發現了以下文章,解釋瞭如何在asp.net mvc,之外使用razor engine,但它與asp.net核心無關。

+0

。爲什麼C#代碼而不是剃刀? –

回答

1

我是RazorLight庫(https://github.com/toddams/RazorLight)的作者,它是可以在.NET Core上運行的RazorEngine的替代品。

它可以部分解決您的問題。爲什麼一部分,因爲目前不支持標籤助手,但計劃在未來實施。看看它,我相信它可能對你有用。隨意問任何問題

更新:爲什麼你想要的C#代碼,而不是編譯的DLL

var engine = EngineFactory.CreatePhysical("path here"); 

string content = "your content to be compiled"; 
var modelInfo = new ModelTypeInfo(typeof(YourViewModel)); 

string razorTemplate = engine.Core.GenerateRazorTemplate(new LoadedTemplateSource(content), modelInfo); 
+0

可以請你給我一個如何獲得C#代碼,而不是最終生成的內容(通常是一個HTML字符串)的例子:-)? – Chedy2149

+1

稍後我會用代碼示例更新我的答案,因爲此刻我正在使用手機,這不太方便) – Toddams

相關問題