【问题标题】:what is the best way to bind ViewModel data to master page in asp.net-mvc将 ViewModel 数据绑定到 asp.net-mvc 中的母版页的最佳方法是什么
【发布时间】:2011-09-24 21:48:53
【问题描述】:
我想在我的母版页上动态创建我的菜单,我已经看到了 2 种不同的方法:
第一种方法是使用一个基本控制器,在其构造函数中加载所有共享视图模型数据。 This is described here
-
第二种方法是为此创建一个单独的控制器,并在您的母版页中使用它来将特定的视图片段注入母版页,而不会污染您的常规页面视图生成:
@Html.Action("Index", "Settings")
一个比另一个更好吗?这里有什么最佳做法吗?
【问题讨论】:
标签:
asp.net-mvc
master-pages
viewmodel
【解决方案1】:
我个人更喜欢第二种方法,因为它允许独立于主逻辑处理菜单。通过使用子操作,您可以拥有一个完全独立的菜单控制器生命周期,而无需为使用此母版页的所有视图创建基本视图模型。继承似乎不适合这种情况,但当然这并不意味着您应该完全排除它。每个场景都是特定的,根据具体的细节(你没有提供给你的),可能会有不同的方法。
只是不要认为如果Html.Action 适用于一种情况,它就会适用于所有情况。可能有一些项目特定的限制不合适,或者可能通过其他方法实现。
没有适用于所有情况的通用解决方案。否则就不需要程序员了:-)