2016-02-12 41 views
0

创建付款时,我想在我的付款索引视图中显示ClientName。我从另一个名为表中获取客户端名称为 “客户”在我的视图中显示来自其他模型的数据

enter image description here

付款型号:

public class Payments 
{ 
    [Key] 
    public int PaymentsId { get; set; } 

    public int ClientsId { get; set; } 
    [ForeignKey("ClientsId")] 
    public virtual Clients Clients { get; set; } 
    public String Paymentnumber { get; set; } 
    public DateTime PaymentDate { get; set; } 
    public Decimal Amount { get; set; } 
    public Decimal Discount { get; set; } 
    public String Reference { get; set; } 
    public String Bank { get; set; } 

} 

付款控制器:

// GET: Payments 
public ActionResult Index() 
{ 
    return View(db.PaymentsList.ToList()); 
} 

付款索引视图:

@model IEnumerable<localuh.Models.Payments> 
.... 
<table class="table"> 
<tr> 
    <th>@Html.DisplayNameFor(model => model.Paymentnumber)</th> 
    <th>@Html.DisplayNameFor(model => model.PaymentDate)</th> 
    <th>@Html.DisplayNameFor(model => model.Amount)</th> 
    <th> @Html.DisplayNameFor(model => model.Discount)</th> 
    <th>@Html.DisplayNameFor(model => model.Reference)</th> 
    <th>@Html.DisplayNameFor(model => model.Bank)</th> 
    <th></th> 
    <th></th> 
</tr> 

@foreach (var item in Model) { 
<tr> 
    <td>@Html.DisplayFor(modelItem => item.Paymentnumber)</td> 
    <td>@Html.DisplayFor(modelItem => item.PaymentDate)</td> 
    <td>@Html.DisplayFor(modelItem => item.Amount)</td> 
    <td>@Html.DisplayFor(modelItem => item.Discount)</td> 
    <td>@Html.DisplayFor(modelItem => item.Reference)</td> 
    <td>@Html.DisplayFor(modelItem => item.Bank)</td> 
    <td> 
     @Html.ActionLink("Edit", "Edit", new { id=item.PaymentsId }) | 
     @Html.ActionLink("Details", "Details", new { id=item.PaymentsId }) | 
     @Html.ActionLink("Delete", "Delete", new { id=item.PaymentsId }) 
    </td> 
</tr> 
} 

</table> 

那么,我该怎么做呢?

+0

@StephenMuecke我改变所有建议 – Demain

+0

需要一个面包机k,但是你可以显示'付款'的模型(它已经正确设置了它,它应该有一个'int ClientID'属性和一个'虚拟客户端客户端'属性),我会在30分钟后看看。 –

+0

'支付'模型(由'db.PaymentsList'返回的)',而不是'PaymentsViewModel' –

回答

0

Payments模型包含virtual属性Clients(这将是“懒加载”由EF,所以你只需要添加另一个表列中显示客户端的名称。假设你的Clients模型有一个属性public string Name { get; set; },那么这将是

<td>@Html.DisplayFor(modelItem => item.Clients.Name)</td> 

边注:建议你的属性重命名为Client,不Clients这表明它是一个集合

相关问题