如何从asp.net核心的cshtml视图中获取编译的C#代码?

时间:2017-02-25 11:56:07

标签: c# razor asp.net-core .net-core

我有一个asp.net核心1.1项目,我需要获取包含标记帮助程序的cshtml视图的已编译C#代码。

我知道precompile the razor views的可能性,但这没有用,因为它生成的dll包含与视图对应的IL代码而不是C#代码

我发现以下文章解释了如何在asp.net mvc之外使用razor engine但它与asp.net核心无关。

1 个答案:

答案 0 :(得分:1)

我是RazorLight库(https://github.com/toddams/RazorLight)的作者,RazorEngine可以在.NET Core上运行。

它可以部分解决您的问题。部分原因,因为目前不支持标记帮助程序,但计划在将来实现它们。看看它,我相信它可能对你有用。随意提出任何问题

更新

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);