Asp.net-Mvc
如何在單個 MVC 視圖中顯示來自多個表的數據
我很難用 MVC 視圖解決以下問題。
我的目標是在單個 MVC 視圖中顯示來自多個表的數據。大部分數據來自名為“零售商”的表。我還有另一個名為 RetailerCategories 的表,它儲存來自 Retailers 表的 Retailerid 以及一個連結到 Category 表的 categoryid。
請注意,RetailerCategories 表中的每個retailerid 都有多條記錄。
在視圖中,我想顯示零售商列表,對於每個零售商,我想顯示適用於他們的類別列表。
實現這一目標的最佳方法是什麼?我嘗試過的一些事情在你能幫助解決這個 MVC ViewModel 問題嗎?
然而,這似乎不是正確的方法。
您需要專門針對此視圖的需求量身定制的視圖模型。在定義視圖模型時,您不應該考慮表格。SQL 表在視圖中絕對沒有意義。考慮您需要顯示哪些資訊並相應地定義您的視圖模型。然後您可以使用AutoMapper在您的真實模型和您定義的視圖模型之間進行轉換。
所以忘記你所說的關於表格的一切,專注於以下句子:
在視圖中,我想顯示零售商列表,對於每個零售商,我想顯示適用於他們的類別列表。
這句話實際上非常好,因為它準確地解釋了您的需求。所以一旦你知道你需要什麼,就繼續建模它:
public class CategoryViewModel { public string Name { get; set; } } public class RetailerViewModel { public IEnumerable<CategoryViewModel> Categories { get; set; } }現在您將視圖強烈鍵入到
IEnumerable<RetailerViewModel>. 從這裡很容易在視圖中做你想做的事情:顯示零售商列表,每個零售商都有相關類別的列表。