2017-08-16 30 views
0

我在MVC之外使用Razor。我想呈現視圖爲字符串。這是我的方法:無法找到視圖Razor .Net Core應用程序

我創建了Views文件夾,並粘貼了很少的意見。所有文件都具有複製到輸出目錄 - 始終複製。但我正在逐漸下一這裏

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

的ViewResult已成功財產這始終是假的,也有與值屬性SearchedLocations:「/Views/Shared/Email.cshtml」和「/Views//Email.cshtml」。有任何想法嗎 ?

回答

1

默認視圖位置是/Views/{1}/{0}.cshtml/Views/Shared/{0}.cshtml

大概控制器不存在(和剃刀找不到控制器),因此它在你的情況/Views//Email.cshtml

您可以通過添加一個新的視圖位置擴展添加自定義地點:

public class ViewLocationExpander : IViewLocationExpander 
{ 
    public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations) 
    { 
     var locationWithoutController = "/Views/{0}.cshtml"; 
     return viewLocations.Union(new[] { locationWithoutController }); 
    } 

    public void PopulateValues(ViewLocationExpanderContext context) 
    { 
    } 
} 

註冊你Startup.cs膨脹機:

public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddMvc() 
     .AddRazorOptions(options => 
     { 
      options.ViewLocationExpanders.Add(new ViewLocationExpander()); 
     }); 
    } 
相關問題