1

我有两个 asp.net mvc 项目。此外,其中一个使用 ASPX 视图引擎和其他 Razor。第一个项目它是所有用户共同的东西,其他一些用户组。他们都为每个用户共享一个会话。

我将加入这些项目并为每个项目使用区域。现在我想知道这是否符合我的要求?

我有两个问题:

  1. 是否可以将具有不同视图引擎的两个项目放在一个项目中并将它们分开?
  2. 是否可以在 asp.net mvc 中部署一个区域而无需更改其他区域?

PS:我觉得第一个问题的答案不是。但我仍然对第二个感兴趣(只是想知道它是否可能以及以何种方式)。

4

2 回答 2

4

在这里您可以找到一篇博客文章如何在同一个项目中使用多个视图引擎: http ://weblogs.asp.net/gunnarpeipman/archive/2010/07/29/asp-net-mvc-3-using-multiple-view -engines-in-same-project.aspx

我想这也适用于区域......

对于你的第二个问题。有一个框架叫mef。使用 Managed Extensibility Framework (Mef),您可以为您的网页构建一个插件结构,其中每个插件都可以独立维护。但是你必须为此做一些额外的工作。

请参阅这些可能为您指明正确方向的链接:

http://blog.maartenballiauw.be/post/2009/04/21/ASPNET-MVC-and-the-Managed-Extensibility-Framework-%28MEF%29.aspx

http://www.fidelitydesign.net/?p=88

我希望我确实正确理解了您的问题并可以提供帮助...

于 2012-09-06T12:44:13.997 回答
1

1 - 是

是的,我从事一个同时运行 Spark 和 Razor 的项目。

你不能把这两个混在一起

  • 从 Razor 页面中渲染部分 Spark 不起作用(至少效果不佳)。

2 - 否

您可以将更改部署到视图而不影响站点的其余部分。

但是,触摸 Bin 文件夹或 .config 文件将重置 AppDomain。此外,对共享代码的更改显然会影响这两个领域。

除非您使用进程外会话状态提供程序(如 StateServer、SQL Server、MemCache 等),否则重置 AppDomain 将清除任何 SessionState

你为什么要这样做?

替代解决方案:

  1. 在 IIS 中创建 2 个网站,您可以将它们绑定到单独的 IP 地址或 Host Headers
  2. 创建具有 2 个独立站点的 2 个虚拟目录
于 2012-09-08T12:57:11.873 回答