asp.net-core – 当视图位于Views文件夹之外时,标记帮助程序无法解析

使用Asp .Net 5 beta 6时,当视图位于Views文件夹之外时,标记帮助程序无法解析.我想要的文件夹结构是基于功能而不是文件类型的文件夹结构.控制器,查看我希望在反映控制器名称文件夹中组合在一起的特定功能的模型和视图.这是我在项目中想要的文件夹结构的示例:

UI
   - Account
        - AccountController.cs
        - Accountviewmodels.cs
        - Login.cshtml
        - Register.cshtml
   - Students
        - StudentsController.cs
        - Studentsviewmodels.cs
        - CaptureStudent.cshtml

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

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;
        }
    }
}

我在startup.cs中注册如下:

services.AddMvc().ConfigureMvcViews(options =>
        {
            options.ViewEngines.Clear();
            options.ViewEngines.Add(typeof(CustomUIViewEngine));
        });

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

<form method="post" class="form-horizontal" role="form" action="/Account/Login">

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

<form asp-controller="Account" asp-action="Login" method="post" class="form-horizontal" role="form">

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

解决方法

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

其中一些在我的Authoring Tag Helpers中提到过我将在接下来的文章中详细介绍继承层次结构,添加删除.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....