寻找一种设计模式来处理asp.net子项目

时间:2011-07-21 15:42:47

标签: asp.net design-patterns

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

项目

  • 母版

- 法律部门项目

---法律主页(使用Main MasterPage)

--- Legal Sub Page(使用Main MasterPage)

- 管理部分项目

---主要管理员(使用主要主页)

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

---第三管理员(使用主MasterPage)

我希望网站工作的方式是,如果主页面中的菜单项被触发,即使在不同的项目中,子页面也能够先处理它,也许会要求用户保存在处理Master页面的事件之前。

那样的样品是什么?

ASP.Net 2.0或3 / 3.5很好。 MVC或MVP会为此工作吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

Main Project
|--Areas
  |--Admin
    |--Controllers
    |--Models
    |--Views
|--Controllers
|--Models
|--Views
    |--Layout.cshtml

如果您愿意,您甚至可以将“合法”作为一个区域。

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