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



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

  1. 第一种方法是有一个基本控制器,在它的构造函数中加载所有共享视图模型数据。

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

    @Html.Action("Index", "Settings")
    

一个比另一个好吗?这里有什么最佳实践吗?

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

只是不要认为如果Html.Action对一个场景是好的,那么它对所有场景都是好的。可能会有一些项目特定的限制,这可能是不合适的,或者可以通过其他方法实现。

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

相关内容

  • 没有找到相关文章

最新更新