2014-01-30 71 views
0

在ASP.NET Visual Basic項目中使用MVC5和EntityFramework6我有2個模型 一個調用了列(id,name,surname,companyid)的用戶和一個名爲Company(id,name,地址)在SQL服務器數據庫中。在asp.net mvc應用程序中加入模型

如何在另一個模型中加入這兩個模型並創建一個控制器,以在視圖中顯示該連接的結果?

回答

0

如何加入另一個模型這兩個示範 - >使用ViewModel

public class UserViewModel 
{ 
    public User UserInfo{get;set;} 
} 

,因爲你的UserInfo有一個外鍵CompanyId,希望您的用戶類可能有一個名爲Company由EF生成的屬性。如果沒有,你可以在你的視圖模型添加它

1

這裏有雲的解決方案 -

型號從EF -

enter image description here

然後你就可以擁有視圖模型如下 -

public class UserMiniViewModel 
{ 
    public string UName { get; set; } 
    public string CName { get; set; } 
} 

控制器動作可以是 -

public class UsersController : Controller 
{ 
    public ActionResult Index() 
    { 
     List<UserMiniViewModel> model = new List<UserMiniViewModel>(); 
     using (SampleEntities entities = new SampleEntities()) 
     { 
      var results = from p in entities.Users 
          select new UserMiniViewModel() 
          { 
           UName = p.Name, 
           CName = p.Company.CompanyName 
          }; 
      model = results.ToList(); 
     } 
     return View(model); 
    } 
} 

索引視圖將是 -

@model IEnumerable<MVC.Controllers.UserMiniViewModel> 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

<table class="table"> 
    <tr> 
     <th> 
      @Html.DisplayNameFor(model => model.UName) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.CName) 
     </th> 
     <th></th> 
    </tr> 

@foreach (var item in Model) { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.UName) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.CName) 
     </td> 
    </tr> 
} 

</table> 

當你執行的代碼,你的輸出將是 -

enter image description here

相關問題