是否可以在View中传递多个值而无需新类?

时间:2014-01-19 15:35:37

标签: asp.net asp.net-mvc

我想问一下是否可以将多个值传递给SharedLayout View而不生成新类?

例如,

我在开头填写我的共享布局,每次都有一个类别和产品列表。我使用Tuple<object1, object2>传递它们但是Tuple有最多6个对象,在我的应用程序中我将不得不传递6 ...但我不想生成包含产品,类别,用户列表的新类等等...... 还有其他方法吗?

3 个答案:

答案 0 :(得分:0)

使用ViewModel是将数据传递到视图的最佳做法,您似乎拥有使用它的完美候选者,但如果您不想这样做,并且您已经在使用{{1}有一种方法可以通过在元组内嵌套元组将超过7个参数传递给元组。

如果你看一下Tuple定义:

Tuple

8元组的最后一个元素是泛型类型参数Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> ,它表示定义元组剩余组件类型的任何通用Rest对象。

这使您可以根据需要创建具有多个参数的元组。

考虑这个16元组的例子:

Tuple

答案 1 :(得分:-1)

您可以使用界面而不是类创建强类型视图。然后,只要它的类型实现了该接口,就可以将任何对象传递给视图。

答案 2 :(得分:-1)

您可以使用ViewBag。

ViewBag.Products = productList;

在你看来

@foreach(var product in (ProductList)ViewBag.Products) {
  Html.DisplayFor(x => product);
}