在ASP.NET Visual Basic項目中使用MVC5和EntityFramework6我有2個模型 一個調用了列(id,name,surname,companyid)的用戶和一個名爲Company(id,name,地址)在SQL服務器數據庫中。在asp.net mvc應用程序中加入模型
如何在另一個模型中加入這兩個模型並創建一個控制器,以在視圖中顯示該連接的結果?
在ASP.NET Visual Basic項目中使用MVC5和EntityFramework6我有2個模型 一個調用了列(id,name,surname,companyid)的用戶和一個名爲Company(id,name,地址)在SQL服務器數據庫中。在asp.net mvc應用程序中加入模型
如何在另一個模型中加入這兩個模型並創建一個控制器,以在視圖中顯示該連接的結果?
如何加入另一個模型這兩個示範 - >使用ViewModel
public class UserViewModel
{
public User UserInfo{get;set;}
}
,因爲你的UserInfo有一個外鍵CompanyId
,希望您的用戶類可能有一個名爲Company
由EF生成的屬性。如果沒有,你可以在你的視圖模型添加它
這裏有雲的解決方案 -
型號從EF -
然後你就可以擁有視圖模型如下 -
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>
當你執行的代碼,你的輸出將是 -