我正在制作几个网络应用程序。我想在这里做的是:
应用程序应使用不同的应用程序池在 IIS 中独立。
有一个主要应用程序单独用作首页,允许登录/退出并将用户导航到其他应用程序。
我希望其他应用程序使用主应用程序的布局。
我想到的结构是将主应用程序部署在网站的根文件夹下,并将其他应用程序托管在单独的文件夹中(单独的应用程序和池)。像这样的东西:
IIS
|
|__Main app (web site)
|
|__App1
|
|__App2
但是,我在这里感到困惑:
如何在应用程序/池中重用布局/dll,而不将它们复制到每个应用程序中(也许这是一个愚蠢的问题)
如何使用 MVC3 Controller /操作功能而不是直接使用硬编码
<a/>
将用户导航到每个应用程序。我实际上尝试过。看起来主应用程序(MVC3)只能识别它自己的项目中的 Controller 和 View 。
总而言之,我尝试做的是:将我的应用程序部署在上面的树结构中,并让主应用程序从子应用程序中引入 View 并显示在主应用程序的框架中。
也许这不是一个好的做法,但欢迎任何建议!!!
非常感谢
最佳答案
听起来您确实想在 MVC 中使用 Areas
。这不允许您在自己的应用程序池中运行嵌套的“应用程序”,但它可以完成您想要做的所有其他事情(共享布局、dll、Html.ActionLink
、基于角色的访问)到每个区域
等)。您可以轻松地在所有区域共享顶级导航,并为每个区域提供不同的子导航。我有一篇关于使用跨区域共享的单一布局的两部分博客文章,可能会给您一些帮助(或想法)。
Single Layout for Areas with ASPX and Razor views (Part 1) - 使用 ASPX View 引擎
Single Layout for Areas with ASPX and Razor views (Part 2) - 使用 Razor View 引擎
如果您觉得在单个项目的区域中拥有子应用程序过于严格,您也可以考虑使用 MvcContrib在可移植区域中创建您的子应用程序,然后在您的顶级应用程序中使用它们。
关于iis - IIS中的MVC3结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5946008/