剃刀引擎无法找到视图

Daa*_*win 6 razor razorengine asp.net-core-mvc

我试图在不使用Web请求的情况下从视图中呈现html.我需要HTML作为字符串,在内部,我不希望提供它.

viewEngine.FindView()返回一个viewEnineResult,显示未找到任何视图.它显示搜索它看起来像这样的位置:

/Views//PDFOperationsReportView.cshtml

/Views/Shared/PDFOperationsReportView.cshtml

(观察第一行中的双正斜杠)

文件结构(我将其放入HTML片段,因为我无法在此编辑器中正确设置文本格式)

Project 
  Folder 
    Subfolder
        CodeFile.cs
  Views
    PDFOperationsReportView.cshtml
Run Code Online (Sandbox Code Playgroud)

代码:

   var viewName = "PDFOperationsReportView";
        var actionContext = GetActionContext();
        var viewEngineResult = _viewEngine.FindView(actionContext, viewName, false);
        if (!viewEngineResult.Success)
        {
            throw new InvalidOperationException(string.Format("Couldn't find view '{0}'", viewName));
        }

        var view = viewEngineResult.View;
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 8

我遇到过同样的问题.我在这里找到了答案:GitHub aspnet/Mvc Issue#4936

基本上,使用GetView而不是FindView像这样:

var viewResult = razorViewEngine.GetView(viewName, viewName, false);
Run Code Online (Sandbox Code Playgroud)