2013-10-23 64 views
2

我創建了一個父模型insertBreweryModel.cs:MVC在一個視圖中顯示多個表?

public class InsertBreweryModel 
{ 
    public IList<Breweries> Breweries { get; set; } 

    public IList<BreweryData> BreweryData { get; set; } 
} 
在我看來

我引用它想:

@model BaPP.Models.InsertBreweryModel 

現在我可以成功地使用你的foreach通過啤酒項目迭代,卻怎麼也我們displayfor顯示來自其他tablem與item.id具有相同的id的數據?

@foreach (var item in Model.Breweries) 
{ 
    <tr> 
    <td> 
    @Html.DisplayFor(modelItem => item.BreweryName) 
    </td> 
    <td>@Html.DisplayForModel(Model.BreweryData Pseudo: show data from brewerydata.column where id = item.id 
    </td> 

希望有人能幫忙嗎?

+0

...創建另一個表和使用以下Model.BreweryData在其中 –

+0

Thx;已經有兩個表,啤酒廠和brewer數據? – dahund

+0

好吧,我得到了你的問題......你有兩個表,如果數據來自兩個不同的表(它們之間應該有一些關係像外鍵)在數據庫中,那麼你可以輕鬆導航到其他表的數據。 –

回答

3

對於所有的人可能有同樣的問題,第一個答案是正確的,但我是缺少其他DB在我視圖。這是我解決它的方式。

我的模型

namespace BaPP.Models 
{ 
    public class InsertBreweryModel 
    { 
     public Breweries Breweries { get; set; } 

     public BreweryData BreweryData { get; set; } 

    } 
} 

我控制器

namespace BaPP.Controllers 
{ 
    public class BreweryController : Controller 
    { 
     private ProjectContext db = new ProjectContext(); 

     // 
     // GET: /Default1/ 

     public ActionResult Index() 
     {    

      var viewModel = from o in db.Breweries join o2 in db.BreweryData on o.BreweryId equals o2.BreweryId where o.BreweryId.Equals(o2.BreweryId) select new InsertBreweryModel { Breweries = o, BreweryData = o2}; 
      return View(viewModel); 
     } 

我的觀點

@model IEnumerable<BaPP.Models.InsertBreweryModel> 

@foreach (var item in Model) { 
    <tr> 
     <td> 
     @Html.DisplayFor(modelItem => item.Breweries.BreweryName) 
     </td> 
    <td> 

     @Html.DisplayFor(modelItem => item.BreweryData.DescriptionText) 
    </td> 

再次THX兩種意見:-)

+0

謝謝兄弟你救我的工作! –

0

試試這個:

@foreach (var item in Model.Breweries) 
{ 
    <tr> 
    <td> 
    @Html.DisplayFor(modelItem => item.BreweryName) 
    </td> 
    <td> 
    @Html.DisplayFor(modelItem => item.tableName.tableFieldname) 
    </td> 
    </tr> 
} 
+0

不,它失敗,BaPP.Models.Breweries不包含'BreweryData'的定義? – dahund

+0

tableName是數據庫表的名稱 –

0

嘗試使用類似的東西

@foreach (var item in Model.Breweries) 
{ 
@Html.DisplayFor(model => item.FieldForBreweries) 

foreach (var item1 in Model.BreweryData.Where(x => x.Id == item.Id)) 
{ 
@Html.DisplayForModel(item1) 
} 
} 
+0

Thx虐待嘗試,但突然我有問題與數據庫:-)典型的如此生病回來的結果,當我修復。 – dahund

相關問題