预编译的Razor视图与ASP.NET Core的字符串

问题描述:

在ASP.NET Core 1.1中使用新的Razor预编译时,如何将Razor视图渲染为字符串?预编译的Razor视图与ASP.NET Core的字符串

以下代码来自示例,将引发异常,因为viewResult.View为空。

var httpContext = new DefaultHttpContext { RequestServices = _serviceProvider }; 
var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor()); 

var viewResult = _razorViewEngine.FindView(actionContext, viewName, false); 

if (viewResult.View == null) 
{ 
    throw new ArgumentNullException($"{viewName} does not match any available view"); 
} 

https://blogs.msdn.microsoft.com/webdev/2016/10/25/announcing-asp-net-core-1-1-preview-1/


旧的方式(例如):File -> Razor -> Compile -> string

应该已经工作。当你拨打电话:

viewResult.View.RenderAsync(viewContext); 

它会找到预编译的视图并使用该视图,而不是再次编译视图。

+0

在到达这行代码之前,抛出异常。 –