视图位于Views文件夹之外时,标记帮助程序无法解析

Bru*_*ill 5 tag-helpers asp.net-core

随着Asp .Net 5 beta 6标签视图时位于外佣不解决Views文件夹.我想要的文件夹结构是基于功能而不是文件类型的文件夹结构.控制器,查看我希望在反映控制器名称的文件夹中组合在一起的特定功能的模型和视图.这是我在项目中想要的文件夹结构的示例:

 UI
   - Account
        - AccountController.cs
        - AccountViewModels.cs
        - Login.cshtml
        - Register.cshtml
   - Students
        - StudentsController.cs
        - StudentsViewModels.cs
        - CaptureStudent.cshtml
Run Code Online (Sandbox Code Playgroud)

为此,我创建了一个自定义视图引擎:

public class CustomUIViewEngine : RazorViewEngine
{
    public CustomUIViewEngine(IRazorPageFactory pageFactory,
       IRazorViewFactory viewFactory,
       IOptions<RazorViewEngineOptions> optionsAccessor,
       IViewLocationCache viewLocationCache) :
       base(pageFactory, viewFactory, optionsAccessor, viewLocationCache)
    {
    }
    public override IEnumerable<string> ViewLocationFormats
    {
        get
        {
            var viewLocationFormats = base.ViewLocationFormats
            .Union(new string[] { "~/UI/{1}/{0}.cshtml" });
            return viewLocationFormats;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我注册的startup.cs内容如下:

services.AddMvc().ConfigureMvcViews(options =>
        {
            options.ViewEngines.Clear();
            options.ViewEngines.Add(typeof(CustomUIViewEngine));
        });
Run Code Online (Sandbox Code Playgroud)

这个自定义视图引擎确实有效,并且视图被定位和渲染,唯一的问题tag helpers是没有正确渲染,所以不要看到这个:

<form method="post" class="form-horizontal" role="form" action="/Account/Login">
Run Code Online (Sandbox Code Playgroud)

我在渲染的源代码中看到了这个:

<form asp-controller="Account" asp-action="Login" method="post" class="form-horizontal" role="form">
Run Code Online (Sandbox Code Playgroud)

tag helpers当视图位于Views文件夹之外并且有任何方法可以在Asp.Net 5Web应用程序中更正此问题时,是否有人知道为什么无法正确呈现?

Ric*_*SFT 5

您是否在_ViewImports文件中添加了您的 TH ,如果是这样,using语句是否被识别?您是否尝试过将 @addTagHelper 直接添加到视图中?

其中一些在我的Authoring Tag Helpers 中提到,我 将在即将发布的文章中详细介绍继承层次结构、添加和删除。