在一个视图中处理多个模型的最佳方法

时间:2013-06-14 01:22:03

标签: c# asp.net-mvc

我对ASP.Net MVC有点新意,但我想了解何时以及如何最好地使用ViewModels。

在我的许多观点中,所需的数据仅部分位于一个模型中。为此,我使用AutoMapper将Model映射到ViewModel,然后将ViewModel传递给View。

但是,在其他视图中,需要来自多个模型的数据。

到目前为止我实现这一目标的方式是这样的:

public class GamesEditData
{
    public Game Game { get; set; }
    public ICollection<Genre> Genres { get; set; }
}

...其中游戏流派是模特。我觉得我在这里做错了,因为这是直接将模型本身传递给View。这与我从单独的ViewModel传递属性的其他时间不同,这让我觉得我打破了某种模式。

简而言之,在ASP.Net MVC中使用ViewModel设计模式在多个模型中填充View的最佳方法是什么?

1 个答案:

答案 0 :(得分:6)

是的,这正是我做的。如果您需要向模型添加更多元素或使用属性修饰模型,则以后简单易用。

或者,您可以使用Tuple,将模型类型声明为:

@model Tuple<Game, ICollection<Genre>>