2014-01-19 12 views
1

我想問是否可以將多個值傳遞給SharedLayout視圖而不生成新類?是否有可能在View中傳遞多個值而沒有新類?

例如 我在開始時填寫我的共享佈局,並且每次都列出類別和產品。我使用Tuple<object1, object2>來傳遞它們,但Tuple最多有6個對象,並且在我的應用程序中,我必須通過那麼6 ...但我不想生成包含產品,類別,用戶列表等的新類。 有沒有其他辦法?

回答

-1

您可以使用接口而不是類創建強類型視圖。然後,只要它是類型實現的接口,就可以將任何對象傳遞給視圖。

+1

他明確不希望創建一個視圖模型。 – Andy

-1

您可以使用ViewBag。

ViewBag.Products = productList; 

在你看來

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

不要忘記Session和TempData。 – danludwig

+0

您的代碼無效,應使用前先投射ViewBag.Products – alexmac

+0

仍然無效,現在忘記';'之後Html.DisplayFor – alexmac

0

使用ViewModel是將數據傳遞到視圖中的最佳實踐,你似乎對使用它的最佳人選,但如果你不想,如果您已經在使用Tuple,則可以通過將元組嵌套到元組中來將多於7個參數傳遞給元組。

如果你看一下Tuple定義:

Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> 

8-元的最後一個元素是泛型類型參數Rest表示任何普通Tuple對象,定義類型的元組的其餘組件。

這使您可以使用任意數量的參數創建元組。

考慮這個16-元爲例:

Tuple<int, int, int, int, int, int, int, 
    Tuple<int, int, int, int, int, int, int, 
    Tuple<int, int>>> t16; 
相關問題