我正在制作几个Web应用程序。我想在这里做的是:
应用程序应该在IIS中使用不同的应用程序池。
有一个主要的应用程序单独使用作为首页,允许登录/退出并将用户导航到其他应用程序。
我希望其他应用程序使用主应用程序的布局。
我想的结构是将主应用程序部署在网站的根文件夹下,并将其下的其他应用程序托管在单独的文件夹(单独的应用程序和池)中。类似的东西:
IIS
|
|__Main app (web site)
|
|__App1
|
|__App2
然而,我在这里感到困惑:
如何重复使用layout / dll acorss应用程序/池而不将其复制到每个应用程序中(可能这是一个愚蠢的问题)
如何使用MVC3控制器/操作功能而不是直接使用硬编码<a/>
来导航用户到每个应用程序。我实际上尝试过。看起来主应用程序(MVC3)只能在它自己的项目中识别控制器和视图。
总之,我尝试做的是:在上面的树形结构中部署我的应用程序,让主应用程序从子应用程序中提取视图并显示在主应用程序的框架中。
也许这不是一个好习惯,但欢迎任何建议!!!
非常感谢
答案 0 :(得分:1)
听起来你真的想在MVC中使用Areas
。这将不允许您在自己的应用程序池中运行嵌套的“应用程序”,但它将完成您要执行的所有其他操作(共享布局,dll,Html.ActionLink
,基于角色的访问每个{{1等等)。您可以轻松地在所有区域内共享顶级导航,并为每个区域分配不同的子导航。我有一篇关于使用单个布局的2篇博客文章,这些布局在可能给你一些帮助(或想法)的地区共享。
Single Layout for Areas with ASPX and Razor views (Part 1) - 使用ASPX视图引擎
Single Layout for Areas with ASPX and Razor views (Part 2) - 使用Razor View引擎
如果您觉得在单个项目中的区域中有子应用程序过于僵化,您还可以考虑使用MvcContrib在便携式区域中制作子应用程序,然后在顶级应用程序中使用它们。