2017-09-27 31 views
1

我有2代表與獨立控制器&觀在名爲同一數據庫中的一個
Part
另一個叫
Assembly引用表中的數據引用不同的表[MVC]

在我編輯視圖我從Parts表中獲取數據。 我還需要從部件的編輯視圖中的Assembly表中獲取特定數據。我需要得到的數據具有相同的Column name

我需要使用@foreach獲取/在零件編輯顯示此數據視圖

下面就是我使用

@model WebSpares3.Data.Part

@foreach (var item in Model.Assembly) {

我怎樣才能特指如果在每個表中具有相同的列名稱,則將Assembly表中的名稱轉換爲零件數據?

回答

0

您可以創建這個模型或視圖模型:

public class ViewModel 
{ 
    public Part MyPart { get; set;} 
    public Assembly MyAssembly { get; set;}  
} 

那麼這就是你將傳遞到您的看法是什麼:

public ActionResult Create() 
{ 
    ViewModel model = new ViewModel(); 
    model.MyPart = new MyPart() 
         { 
          ColumnName1 = "Details here", 
          ColumnName2 = 1 
         } 
    model.MyAssembly = //populate your Assembly details class 

    return View(model); //return your view with two classes on one class 
} 

現在你可以在你的Razor視圖做到這一點:

@Html.DisplayFor(x => x.MyPart.ColumnName1) 
@Html.DisplayFor(x => x.MyPart.ColumnName2) 

這一個:

@Html.DisplayFor(x => x.MyAssembly.ColumnName1) 
@Html.DisplayFor(x => x.MyAssembly.ColumnName2) 
+0

我已經做了這個,但是我仍然在'View'中看到'Part'不包含'My Assembly'的定義錯誤 '@foreach(Model.MyAssembly中的var模型.Name)' –

+0

我想澄清,MyAssembly.Name是一個類還是一個可枚舉或列表?由於不需要迭代它,如果它只是一個模型而不是可枚舉的。 –

+0

這是一個來自數據庫的列的條目,所以它會是我相信的一個類。我是MVC新手哈哈。 –