【问题标题】:Split Razor Pages into sub projects to make it modular将 Razor 页面拆分为子项目以使其模块化
【发布时间】:2021-04-04 11:36:03
【问题描述】:

我正在尝试找到一种方法将剃须刀页面项目分解为多个项目以使其模块化。

我的想法是,我想将与模块相关的功能隔离到不同的项目中,而不是让一个项目来管理所有功能。基本上,我的 API 项目遵循垂直切片清洁架构,并且我希望在 razor 页面上实现同样的效果。

我想象的结构如下:

一个核心剃须刀页面库项目,其中将包含布局、任何共享的部分视图和资源。

每个模块的剃须刀页面库项目将包含与模块相关的文件。

将引用每个模块项目并包含一些一般视图(例如隐私政策等)并将产生最终结果的主要 razor pages web 项目。

我在这里有一个无效的示例https://github.com/panosru/Playground/tree/master/C%23/ModularRazorPages,只是为了说明我的想法。

问题是我在网上找不到任何资源来指导我如何将剃须刀页面项目拆分为模块,我不确定这是否可能。

以前有没有人尝试过,如果有,你能告诉我一个有用的例子吗?

【问题讨论】:

    标签: .net-core razor-pages


    【解决方案1】:

    经过进一步挖掘,我找到了 this article,巧合的是,它于 2021 年 1 月 18 日发布,距我提出问题差不多一个月。

    通过阅读这篇文章,它实际上为我提供了我正在寻找的解决方案,现在我可以轻松地将我的剃须刀页面拆分为具有separation of concerns 和关注vertical slice architecture 的项目。

    诀窍是在csprojMicrosoft.AspNetCore.App 中使用AddRazorSupportForMvc 指令作为FrameworkReference

    基本上,使其工作的最低限度csproj 是:

    <Project Sdk="Microsoft.NET.Sdk.Razor">
     
      <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <AddRazorSupportForMvc>true</AddRazorSupportForMvc>
      </PropertyGroup>
     
      <ItemGroup>
        <FrameworkReference Include="Microsoft.AspNetCore.App" />
      </ItemGroup>
       
    </Project>
    

    不过,我还是推荐阅读这篇文章,它很有趣。

    【讨论】:

      猜你喜欢
      • 2021-08-03
      • 2013-01-19
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多