【问题标题】:Looking for a design pattern to handle asp.net sub projects寻找一种设计模式来处理 asp.net 子项目
【发布时间】:2011-07-21 15:42:47
【问题描述】:

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

主要项目

  • 母版页

-- 法律部分项目

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

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

-- 管理科项目

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

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

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

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

有这样的样品吗?

ASP.Net 2.0 或 3/3.5 都可以。 MVC 或 MVP 会为此工作吗?

【问题讨论】:

    标签: asp.net design-patterns


    【解决方案1】:

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

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

    【讨论】:

    • 有什么好的例子吗?我专门寻找可以跨子项目共享身份验证和导航信息的示例。
    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      相关资源
      最近更新 更多