【发布时间】:2016-02-12 13:00:27
【问题描述】:
当我创建付款时,我想在我的付款索引视图中显示 ClientName。我从另一个名为“Clients”的表中获取客户名称
支付模式:
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>
那么,我该怎么做呢?
【问题讨论】:
-
@StephenMuecke 我更改所有建议
-
需要休息一下,但是你能展示一下
Payment的模型吗(如果你设置正确,它应该有一个int ClientID属性和一个virtual Client Client属性),我会30 分钟后看看。 -
Payment模型(db.PaymentsList返回的那个),而不是PaymentsViewModel -
只需在表中添加另一列
<td>@Html.DisplayFor(modelItem => item.Clients.Name)</td>假设Name是您要显示的Clients的属性。旁注:当您的属性与单个客户相关时,您的属性被命名为Clients(复数)令人困惑 - 建议您考虑重命名 -
它可以工作...你能解释一下 virtual 在这种情况下做什么吗?它创建了我的客户 ID 或类似的实例?
标签: c# asp.net-mvc