【问题标题】:EditorTemplate templates in a separate assembly单独程序集中的 EditorTemplate 模板
【发布时间】:2017-06-01 22:22:47
【问题描述】:

是否可以将 ASP.NET Core Web 应用程序配置为使用编译到类库/单独程序集中的 EditorTemplate 剃须刀页面?

例如,以下问题详细说明了如何将ViewComponent 编译到类库中。不幸的是,我找不到任何有关对 EditorTemplate 页面执行相同操作的信息。

ASP.NET MVC 6: view components in a separate assembly

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc .net-assembly class-library mvc-editor-templates


    【解决方案1】:

    GitHub 上的 pranavkm 的帮助下解决了这个问题。我需要的步骤如下:

    在网络应用程序中:ConfigureServices() 中添加类模块程序集作为文件提供程序(通过程序集中的任何类或接口的类型获取程序集):

    var library = typeof(Library.SomeClass).GetTypeInfo().Assembly;
    services.AddMvc()
        .AddRazorOptions(options =>
        {
            options.FileProviders.Add(new EmbeddedFileProvider(library));
        });
    

    在类模块中:确保包含您的编辑器模板的目录结构与您的网络应用程序Views\Shared\EditorTemplates中的目录结构相同。

    在类模块中:通过将以下内容添加到您的project.json,将剃刀视图作为资源嵌入:

    "buildOptions": {
      "embed": "Views/**"
    }
    

    【讨论】:

    • 类库需要哪些依赖?在这些 cshtml 文件中工作与在实际 mvc 项目中使用视图文件时,vs2017 中的工具体验如何 - 有什么不同吗?
    • Intellisense 工作正常(尽管参见stackoverflow.com/questions/42804844/…)。您必须在进行更改后手动重建 - Roslyn 不会自动处理。类库中剃刀视图的预编译目前也很糟糕。在依赖方面,只需添加对 Microsoft.AspNetCore.Mvc 的引用就足够了。
    猜你喜欢
    • 2012-05-16
    • 2021-05-11
    • 2013-05-05
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    相关资源
    最近更新 更多