加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 03:30:19 所属栏目:asp.Net 来源:网络整理
导读:使用Asp .Net 5 beta 6时,当视图位于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中提到过我将在接下来的文章中详细介绍继承层次结构,添加和删除.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读