使用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应用程序中是否有任何方法可以解决此问题时,是否有人知道为什么标记帮助程序无法正确呈现?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。