2016-12-04 64 views
0

在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

回答

1

應該已經工作。當你撥打電話:

viewResult.View.RenderAsync(viewContext); 

它會找到預編譯的視圖並使用該視圖,而不是再次編譯視圖。

+0

在到達這行代碼之前,拋出異常。 –