如何在多个应用程序或网站中重用区域,控制器,视图,模型,路由

Val*_*mas 6 asp.net-mvc asp.net-mvc-routing reusability asp.net-mvc-3-areas asp.net-mvc-3

我有一个测试解决方案,只有一个区域叫做Admin.

我想在许多其他Web应用程序中重用Admin.

我在IIS中的Web应用程序的设置,我已经加入虚拟应用程序,/Admin来自哪里Areas\Admin.

当我导航到/ Admin时,我看到了一个目录列表.当我尝试击中控制器时,/ Admin/News.我收到404错误.可能是这些区域没有注册,即使代码存在于global.asax中.但是,我确信我这一切都是错的.

请建议改变这种情况.

Dar*_*rov 6

区域不能以您的思维方式重复使用(使用虚拟目录).它们只是根Web应用程序不可分割的一部分.它们只是嵌入到根应用程序路由中,没有它就无法运行.通过将虚拟目录指向您的Areas文件夹,您指示这是一个单独的ASP.NET应用程序,但情况远非如此.

有一些项目,如MvcContrib Portable Areas,旨在解决这些问题.值得一看.此外,如果您想将一些Razor视图嵌入到可以在不同的ASP.NET MVC 3应用程序中重用的程序集中,您可以查看以下博客文章.