【发布时间】:2010-11-01 04:33:31
【问题描述】:
我有一个母版页,它依赖于来自我的页面的特定模型。所以基本上每个 ViewResult 的结束代码都是这样的
public ActionResult Details(long store_id)
{
var store = getStore();
var model = new ClientModel<StoreModel>(store)
{
UserNotifications = new UserNotificationModel(this.CurrentUser)
};
return View(model);
}
我的每个控制器都派生自一个 BaseController,因此我希望将这些冗余代码放在那里,但我不确定最好的方法。
我的通用 ClientModel 的结构是这样的......
public class ClientModel<T> : ClientModel {}
public class ClientModel {}
澄清 StoreModel 是通用的,许多其他操作使用不同的视图模型。我只是想根据执行时的外观来展示。
【问题讨论】:
-
在此处谨慎使用继承。你可能会把自己画到一个角落里。 :)
-
继承对于 MasterPage / Content Page 动态是必要的。我的母版页依赖于 ClientModel,而我的视图 Pages 可以采用可选的 PageModel,即
。该解决方案效果很好。
标签: asp.net-mvc