首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.Net MVC 3中的多项目区域

ASP.Net MVC 3中的多项目区域
EN

Stack Overflow用户
提问于 2010-10-19 15:27:17
回答 2查看 7.2K关注 0票数 22

有没有人知道asp.net MVC3对多项目区域的支持?因为它在MVC2中被降级到了未来的状态。如果它仍然没有被包括在内,那么我们是否应该期待ASP.Net MVC Portable Areas via MvcContrib。你能分享一下你的经验吗?

管理大型应用程序的推荐方法是什么?我读到过关于MEF的报道。在哪些场景下推荐使用MEF?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-20 01:18:35

我是微软ASP.NET MVC的开发负责人。

在ASP.NET MVC3中没有包含多项目区域的计划,但是,这绝对是我们计划在未来重新访问的一个区域。

同时,MvcContrib的解决方案可能是最好的选择。MVC Futures下载仍然包含原始多项目区域特性的旧版本(可能只有半功能版本)。因为它的完整源代码也是可用的,所以您也许能够构建一个根据您的需求定制的解决方案。

票数 15
EN

Stack Overflow用户

发布于 2011-08-24 04:32:44

我需要有相同的结构,所以我已经想出了如何将区域作为单独的项目。不需要修改代码,只需要做一些配置工作。

我将创建一个关于此的博客条目,但这里是基本步骤。

假设您有一个MVC应用程序项目,这将是您的"shell“应用程序。

  1. 在shell项目上单击鼠标右键,然后单击"Add Area...“。键入区域名称。这将创建一个包含您的区域的区域文件夹。(这并不是100%需要的,但您确实需要"Areas“文件夹,并且您可以窃取应用程序的XXXXAreaRegistration类。)
  2. 在您的解决方案中创建一个新的MVC3空项目来匹配您的区域。将XXXXAreaRegistration.cs文件移动到新项目中,并根据需要调整命名空间。
  3. 删除模板向导添加的areas文件夹下的文件夹。
  4. 修改新项目的web.config并取出连接字符串以及身份验证、成员资格、配置文件和角色管理器部分。
  5. 在shell项目的“web.config”文件夹中创建一个虚拟目录,并将您所在区域的名称作为别名,并将其指向您的" area“项目。为此,您需要使用IIS或IIS Express。我使用IIS。在IIS express中,您必须修改配置文件。
  6. 在你的"area“项目上创建一个构建后事件,将dll复制到”ScottGu“项目的bin文件夹中。我的构建事件是: copy $(TargetDir)\$(TargetFileName) $(SolutionDir)\ShellProjectName\bin\$(TargetFileName)
  7. In shell web.config将"area“项目添加到System.Web/Assemblies部分。

你可以用"shell“项目引用"area”项目,而不是6/7,它也同样有效。但是,你必须每次都部署所有的“区域”dlls。我可能会做一些探查代码,在应用程序启动时使用反射或MEF将"area“程序集添加到应用程序域。

您可能还希望在shell应用程序和area应用程序中编辑路由并向其添加名称空间过滤器。这样你就不必担心重复的控制器名称在sell应用程序和area应用程序之间发生冲突。

事情就是这样。一旦我有一个正式的博客文章张贴出来,我会尽量记得在这里添加一个链接。

如果有人感兴趣的话,我在http://bob.archer.net/content/aspnet-mvc3-areas-separate-projects上写了我是如何做到这一点的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3966124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档