1

我们有一个抽象的 asp.net mvc 项目,它有很多副本。实际上,每个副本项目都具有几乎相同的功能。但有时在某些动作和控制器中可能会有所不同。此外,每个副本项目都有自己的主题。但他们共享来自抽象基础项目的大部分 javascript 代码。

在这方面,我们遇到了一些困难。

  • 首先,我们不能继承 mvc 视图,所以每个副本项目都有自己的视图。当我们想改变一个功能时,我们必须在每个项目的视图中实现它。
  • 在这种方法中,javascript 也是令人头疼的问题。因为,有时您必须在 javascript 中使用 html 层次结构。而且每一个html代码都是不同的,因为视图不同。
  • 每次我们开始一个新的副本项目时,对我们来说都是一种痛苦。因为即使我们试图坚持基础抽象项目,我们也必须离开基础项目。

因此,我们需要一个可以为我们构建新项目(如主题更改)提供的项目结构。我研究了 MEF 结构。我不知道如果我们将复制项目作为插件制作会发生什么。此外,我不想将视图作为资源集成到程序集文件中。因为它不容易修改。我还研究了一些 MVC 主题结构,但这不是一个好的解决方案,因为它不可继承。

你的建议是什么?

4

1 回答 1

0

不确定您是否已经找到解决问题的方法,但这是我的 2 美分

我也有多个 MVC 项目,有时我需要在所有项目中共享视图。为了解决 JS 问题,我创建了一个“CDN”项目,它只为所有其他应用程序提供静态文件(JS、CSS、资产)。所以我的 JS 调用将是

<script type="text/javascript" src="http://my_cdn_app/Scripts/myscript.js"></script>

对于视图问题,我找到了这个剃刀生成器,您可以在其中在类库中编译一堆视图(非常酷 ey) 缺点是您将标记放在库中而不是 mvc 视图中,这可以更新http://razorgenerator.codeplex.com/很痛苦

因此,您可以拥有来自 CDN 的基本 CSS 和基本 JS,以及每个独立 mvc 应用程序的特定主题/重载。

我还必须实现一个 API 应用程序,它提供 json 数据来填充共享标记,或者我还可以通过 jsonP 将整个标记视图传输到其他应用程序

我希望它有所帮助。干杯

于 2013-08-13T21:40:18.003 回答