System.Web.Razor的文档在哪里? (V2)

时间:2012-08-29 20:27:54

标签: asp.net .net razor compilation documentation

我从NuGet获得了v2版本的Razor引擎。我想使用它的API即时编译Razor视图。但是,它似乎完全没有记录。

每个类型和成员都有以下文档:

  

此类型/成员支持.NET Framework基础结构   不打算直接在您的代码中使用。

这非常令人恼火,因为这些都是公共类型和公共成员 我见过一些使用这个库编译Razor视图的第三方内容,所以我知道任务也应该可行。

那么,有没有关于如何在任何地方使用此API的实际可用文档?

1 个答案:

答案 0 :(得分:0)

我将这个问题暂时搁置了近一年没有答案,所以我决定发布我最终提出的问题。

很明显,Razor仍然没有文档,请参阅http://msdn.microsoft.com/en-us/library/system.web.razor%28v=vs.111%29.aspx,我认为它很可能仍未记录。

但是,如何使用它可以通过查看ASP.NET MVC在其Razor视图引擎中如何使用它的代码轻松确定。然后,您可以根据该代码编写代码。

Razor似乎也与ASP.NET BuildManager基础结构相关联,因此您可以通过它轻松获取Razor视图的实例。然后,您正在寻找调用ExecutePageHierarchy方法。

以下是代码:

public void ProcessRequestCore(HttpContextBase context)
{
    try
    {
        // Create Razor page instance
        var instance = BuildManager.CreateInstanceFromVirtualPath(_razorFilePath, typeof(WebPage)) as WebPage;

        if (instance == null)
            throw new NullReferenceException("BuildManager.CreateInstanceFromVirtualPath returned null.");

        // Set up things
        instance.VirtualPath = _virtualPath;

        // Render the Razor page
        instance.ExecutePageHierarchy(new WebPageContext(context, instance, _model), context.Response.Output);
    }
    catch (Exception exc)
    {
        Logger.WriteException(exc);
        context.Response.StatusCode = 500;
    }
}