【问题标题】:ASP.NET MVC: publish only selected viewASP.NET MVC:仅发布选定的视图
【发布时间】:2021-01-09 13:15:05
【问题描述】:

我的 ASP.NET MVC 项目具有不同的外观(不是主题 - 而是完全不同的外观)。我的客户可以选择他们想要的外观和感觉,我会发布它。

到目前为止,我将每种外观和感觉分成不同的项目,它们共享相同的代码。现在,外观和感觉的数量急剧增加。有超过 30 种不同的“外观和感觉”选项可供选择。是的,我有 30 个不同的项目,所有代码都完全相同(包括 javascript),除了 View (cshtml) 和 css 文件。

是否有一种简单的方法来仅发布特定视图?例如,我有以下视图选项:

  • 现代
  • 当代
  • 经典
  • 独特
  • 仙女座

如果我的客户问我他们想使用现代“外观”,那么我将打开“现代项目”并将其发布到他们的 Azure 服务器。

知道如何只使用 1 个项目并使用“条件发布”之类的东西吗?

谢谢...

【问题讨论】:

  • 可以使用条件编译。
  • Hi Anup,如何使用条件编译排除某些视图?
  • 您可以针对不同的编译配置有选择地排除文件甚至整个项目。但在我回答之前,您能告诉我您打算如何保留文件和文件夹吗?视图的文件夹结构如何?
  • 为什么不将各个视图合并到一个视图中并根据环境变量控制它们。例如,项目 1 - 视图 1 项目 2 - 视图 1,您只能制作一个项目主项目 - 视图 1,其中您有 If(Modern){ View 1 Code } else if(Contemporary) {view 2 code} 并且您可以从环境变量中读取您要加载的主题。如果您的客户说更改主题,那么只需更改变量值。
  • @Ingale88s,我喜欢你的想法...添加为答案,我会接受...谢谢! Anup,因为我还没有将它们放入 1 个项目中,所以我对文件结构非常灵活。但我认为 Ingale88s 提供了一个完美的解决方案。

标签: c# asp.net-mvc-4 razor


【解决方案1】:

您可以将各个视图合并到一个视图中,并根据环境变量对其进行控制。

For example, 
Project 1:
  View 1 
Project 2: 
  View 1 

您可以制作一个单独的项目

Main Project: 
  View 1 

你在其中

If(Modern)
{ View 1 Code } 
else if(Contemporary) 
{view 2 code}

您可以从环境变量中读取要加载的主题。如果您的客户说更改主题,那么只需更改变量值。

【讨论】:

  • 谢谢,这是一个非常聪明的技巧!谢谢!
猜你喜欢
  • 2015-12-22
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多