MVC视图管理

本文关键字:管理 视图 MVC | 更新日期: 2023-09-27 18:00:10

我正在制作一些可重用的MVC功能,并希望将视图包含在DLL中,以便从多个MVC实现中访问它们。我正在使用MVC 5,以防它影响到应该如何做到这一点。

我对此做了一些研究,并找到了一些实现这一点的方法,但许多文章似乎已经过时了,因为它们适用于MVC的早期版本。示例包括:

  • 2012年:ASP。Net MVC插件
  • 2011:在类库中嵌入Razor视图作为资源
  • 2009:将视图文件作为资源嵌入二进制文件

最终目标是有一个类似的项目结构:

- Shared MVC Module
    - Includes Views for Module features
- First MVC Implmentation
   - Consumes Shared MVC Module
- Second MVC Implmentation
   - Consumes Shared MVC Module

允许以简单的方式进行此操作的主要推荐方法是什么?我们目前正在复制视图,但想要一个更好的系统。

MVC视图管理

我遇到了同样的问题,我找到的最好的解决方案是RazorGenerator。

它由两部分组成:

  1. 将预编译视图的Visual Studio扩展。这样,它们将作为已编译类包含在DLL中
  2. 一个运行时DLL,它提供了一个可以使用这些预编译视图的视图引擎实现

我已经在一些项目中使用了它,它运行得很好。特别是,我喜欢这样一个事实,即如果在常规Razor引擎之后添加RazorGenerator视图引擎,我可以覆盖使用它们的项目中的预编译视图,这提供了很大的灵活性。