2017-08-16 81 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()); 
     }); 
    } 
相关问题