我是MVC的新手,并希望以表格形式在视图中显示来自两个模型的数据。 这是我的客户模型:如何使用视图模型来显示表中的数据
public class Customer
{
public int CustomerID { get; set; }
[Display(Name = "First Name")]
public string CustomerFirstName { get; set; }
[Display(Name = "Last Name")]
public string CustomerLastName { get; set; }
[Column(TypeName = "VARCHAR")]
[StringLength(50)]
[Display(Name = "Email")]
public string CustomerEmail { get; set; }
[Column(TypeName = "VARCHAR")]
[StringLength(50)]
[Display(Name = "Street")]
public string CustomerAddress1 { get; set; }
[Column(TypeName = "VARCHAR")]
[StringLength(50)]
[Display(Name = "Suburb")]
public string CustomerAddress2 { get; set; }
[Column(TypeName = "VARCHAR")]
[StringLength(50)]
[Display(Name = "City")]
public string CustomerAddress3 { get; set; }
[Column(TypeName = "VARCHAR")]
[StringLength(50)]
[Display(Name = "Postal code")]
public string PostalCode { get; set; }
[Column(TypeName = "VARCHAR")]
[StringLength(10)]
[Display(Name = "Cellphone Number")]
public string CustomerCell { get; set; }
[Display(Name = "Customer Name")]
public string FullName
{
get { return CustomerFirstName + " " + CustomerLastName; }
}
public virtual ICollection<Purchase> Purchases { get; set; }
}
}
这是我的租用模式:
public class Hire
{
public int HireID { get; set; }
[Display(Name = "Equipment type")]
public int EquipmentID { get; set; }
public int PurchaseID { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
[Display(Name = "Returned date")]
public DateTime? ReturnedDate { get; set; }
public virtual Purchase Purchases { get; set; }
public virtual Equipment Equipments { get; set; }
}
这是我的ViewModel:
public class Custhire
{
public string CustomerFirstName { get; set; }
public string CustomerLastName { get; set; }
public string CustomerEmail { get; set; }
public string CustomerCell { get; set; }
public int HireID { get; set; }
public DateTime? ReturnedDate { get; set; }
}
这是我的控制器,我用它来传递视图模型查看:
public ActionResult Table()
{
Custhire model = new Custhire();
return View(model);
}
这是我的看法:
@model IEnumerable<FCproject.ViewModel.Custhire>
@{
ViewBag.Title = "Table";
}
<h2>Table</h2>
<table class="table table-condensed"
<thead>
<tr>
<th>CustomerID</th>
<th>Equipment</th>
<th>Retrned date</th>
<th></th>
<th></th>
</tr>
</thead>
<body>
@foreach (var item in ViewModel.Custhire)
{
<tr>
<td>
@Html.DisplayFor(m => item.CustomerFirstName)
</td>
<td>
@Html.DisplayFor(m => item.CustomerLastName)
</td>
<td>
@Html.DisplayFor(m => item.CustomerEmail)
</td>
<td>
@Html.DisplayFor(m => item.CustomerCell)
</td>
<td>
@Html.DisplayFor(m => item.HireID)
</td>
<td>
@Html.DisplayFor(m => item.ReturnedDate)
</td>
</tr>
}
</body>
<tr>
</table>
在我看来
,我@foreach
说:ViewModel
不会在目前情况下存在
它必须是'@foreach(以型号VAR项)' –
但是你不出席澳的反正出了正确的控制器方法 - 你显示的那个返回一个'Custhire'对象,但是你的视图是'@model IEnumerable'这会引发异常。 –
我如何将多个Custhire传递给视图? –