正在寻找用于处理asp.net子项目的设计模式

正在寻找用于处理asp.net子项目的设计模式,asp.net,design-patterns,Asp.net,Design Patterns,我想用一个ASP.Net解决方案重新设计我的网站,并为网站的每个主要领域设计一个项目。我想要这样的布局: Main Project |--Areas |--Admin |--Controllers |--Models |--Views |--Controllers |--Models |--Views |--Layout.cshtml 主要项目 母版页 --法律科项目 ---法律主页(使用主页面) ---法律子页(使用主母版页) --行政组项目 ---主

我想用一个ASP.Net解决方案重新设计我的网站,并为网站的每个主要领域设计一个项目。我想要这样的布局:

Main Project
|--Areas
  |--Admin
    |--Controllers
    |--Models
    |--Views
|--Controllers
|--Models
|--Views
    |--Layout.cshtml
主要项目

  • 母版页
--法律科项目

---法律主页(使用主页面)

---法律子页(使用主母版页)

--行政组项目

---主管理员(使用主母版页)

---第二个管理员(使用主页面)

---第三个管理员(使用主页面)

我希望该站点的工作方式是,如果母版页中的菜单项被触发,子页(即使在不同的项目中)将能够首先处理它,可能会要求用户在母版页中的事件得到处理之前进行保存

有这样的样品吗


ASP.NET2.0或3/3.5也可以。MVC或MVP能做到这一点吗?

MVC或WebForms都能做到这一点。但是,您必须在文件系统中手动管理这些内容

对于MVC,有一个区域的概念,但开箱即用,区域必须在同一个项目中。为此,我强烈推荐MVC。

如果两个(或更多)项目需要共享这么多内容,它们真的需要是单独的项目吗

使用MVC3,您可以只为管理功能设置一个区域,它将与站点的其余部分共享相同的登录凭据。项目结构看起来更像这样:

Main Project
|--Areas
  |--Admin
    |--Controllers
    |--Models
    |--Views
|--Controllers
|--Models
|--Views
    |--Layout.cshtml
如果你愿意,你甚至可以把“合法”作为一个领域


要解决事件触发问题,可以在控制器中使用继承来确定哪个控制器将处理特定事件。例如,AdminBaseController可以从主站点BaseController继承,等等。

有什么好的例子吗?我特别寻找可以在子项目之间共享身份验证和导航信息的示例。