【发布时间】:2010-03-27 13:45:18
【问题描述】:
我正在寻找是否可以设计一个 HtmlHelper 扩展方法,该方法将为我想要生成的不同类型的小部件生成 Html。
每种不同类型的小部件都实现了获取和准备任何需要呈现的数据的功能。
谁能建议我可以参考的任何模式来采取方法?我知道可能有可用的框架可以为我做到这一点,但我想我还是会试一试。有什么建议吗?
谢谢
【问题讨论】:
标签: c# asp.net-mvc design-patterns oop
我正在寻找是否可以设计一个 HtmlHelper 扩展方法,该方法将为我想要生成的不同类型的小部件生成 Html。
每种不同类型的小部件都实现了获取和准备任何需要呈现的数据的功能。
谁能建议我可以参考的任何模式来采取方法?我知道可能有可用的框架可以为我做到这一点,但我想我还是会试一试。有什么建议吗?
谢谢
【问题讨论】:
标签: c# asp.net-mvc design-patterns oop
要从一个类家族(所有家族都有一个共同的超类型)创建对象,您应该使用factory method 或abstract factory 设计模式。
【讨论】:
我会考虑在您的大部分小部件布局中使用 PartialViews,这就是我处理它的方式。我所做的是为小部件本身提供一个 PartialView,然后让每个特定的小部件为其内容实现一个 PartialView。我的模型包含一组小部件模型。每个小部件模型都包含有关其页面位置的信息 - 区域和顺序 - 以及为其内容呈现的视图。我正在渲染的视图使用区域和订单信息将小部件放置在网格中,并使用每个单独的小部件模型呈现通用小部件部分,因为它是部分的模型。小部件部分使用小部件中的数据来选择该小部件的内容部分。该内容部分被强类型化到该小部件的视图模型,并直接使用来自小部件模型的数据。为了使其工作,小部件模型将视图模型公开为通用对象属性,以便小部件部分可以将模型数据传递给内容部分。
【讨论】: