iis - IIS中的MVC3结构

标签 iis asp.net-mvc-3 architecture

我正在制作几个网络应用程序。我想在这里做的是:

  1. 应用程序应使用不同的应用程序池在 IIS 中独立。

  2. 有一个主要应用程序单独用作首页,允许登录/退出并将用户导航到其他应用程序。

  3. 我希望其他应用程序使用主应用程序的布局。

我想到的结构是将主应用程序部署在网站的根文件夹下,并将其他应用程序托管在单独的文件夹中(单独的应用程序和池)。像这样的东西:

IIS
  |
  |__Main app (web site)
        |
        |__App1
        |
        |__App2

但是,我在这里感到困惑:

  1. 如何在应用程序/池中重用布局/dll,而不将它们复制到每个应用程序中(也许这是一个愚蠢的问题)

  2. 如何使用 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/

相关文章:

iis - 如何使用无 cookie 域设置 IIS 以提高性能?

asp.net - Blazor WASM 请求已被 CORS 策略阻止

asp.net - 为什么 MVC 中的所有 View 文件夹中都需要 web.config?

architecture - 为什么堆栈通常向下增长?

tcp - 用户带宽和下载间隔之间的权衡

c# - NTLM 身份验证。无法让它在 IHttpModule 中工作。 AcceptSecurityContext 总是失败

android - 如何解决 "No certificates found - The app Chrome has requested a certificate"Android/Google Chrome 问题

c# - MVC - 如何在 Html.ActionLink 中动态设置@class

asp.net-mvc-3 - 缺少显示/添加数据源

JSON仅在后端和前端之间