我想用一个ASP.Net解决方案重新设计我的网站,并为网站的每个主要区域设计一个项目。我想要这样的布局:
主项目
- 法律部门项目
---法律主页(使用Main MasterPage)
--- Legal Sub Page(使用Main MasterPage)
- 管理部分项目
---主要管理员(使用主要主页)
---第二个管理员(使用主MasterPage)
---第三管理员(使用主MasterPage)
我希望网站工作的方式是,如果主页面中的菜单项被触发,即使在不同的项目中,子页面也能够先处理它,也许会要求用户保存在处理Master页面的事件之前。
那样的样品是什么?
ASP.Net 2.0或3 / 3.5很好。 MVC或MVP会为此工作吗?
答案 0 :(得分:1)
MVC或WebForms都会这样做。但是,您必须在文件系统中手动管理这些内容。
对于MVC,有一个区域的概念,但是开箱即用的区域必须在同一个项目中。我强烈推荐使用MVC。
答案 1 :(得分:0)
如果两个(或更多)项目需要分享这么多,那么它们真的需要是单独的项目吗?
使用MVC3,您可以只为Admin功能设置区域设置,它将与站点的其余部分共享相同的登录凭据。项目结构看起来更像是这样:
Main Project
|--Areas
|--Admin
|--Controllers
|--Models
|--Views
|--Controllers
|--Models
|--Views
|--Layout.cshtml
如果您愿意,您甚至可以将“合法”作为一个区域。
要解决事件触发问题,可以在控制器中使用继承来确定将要处理特定事件的继承。例如,AdminBaseController可以从主站点BaseController等继承。