在asp.net-mvc中将ViewModel数据绑定到母版页的最佳方法是什么

时间:2011-09-24 13:39:51

标签: asp.net-mvc master-pages viewmodel

我想在母版页上动态创建菜单,我看到了两种不同的方法:

  1. 第一种方法是使用基本控制器在其构造函数中加载所有共享视图模型数据。 This is described here

  2. 第二种方法是为此创建一个单独的控制器,并在您的母版页中使用它将特定的视图片段注入母版页而不会污染您的常规页面视图生成:

    @Html.Action("Index", "Settings")
    
  3. 一个比另一个好吗?这里有最好的做法吗?

1 个答案:

答案 0 :(得分:3)

我个人更喜欢第二种方法,因为它允许独立于主逻辑处理菜单。通过使用子操作,您可以拥有完全独立的菜单控制器生命周期,而无需为使用此母版页的绝对所有视图提供基本视图模型。对于这种情况,继承似乎并不正确,但当然这并不意味着你应该完全排除它。每个场景都是具体的,取决于具体细节(您没有为您提供),可能会有不同的方法。

只是不要认为如果Html.Action对一个场景有好处,那么对所有场景都有好处。可能存在一些项目特定的约束,这些约束使得不合适或者可能通过其他方法实现这一点。

没有适用于所有情况的通用解决方案。否则就不需要程序员: - )