C# 在我的视图中显示来自其他模型的数据

C# 在我的视图中显示来自其他模型的数据,c#,asp.net-mvc,C#,Asp.net Mvc,创建付款时,我希望在付款索引视图中显示ClientName。我从另一个名为“Clients”的表中获取客户端名称 付款模式: public class Payments { [Key] public int PaymentsId { get; set; } public int ClientsId { get; set; } [ForeignKey("ClientsId")] public virtual Clients Clients { get;

创建付款时,我希望在付款索引视图中显示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>
@model IEnumerable
....
@DisplayNameFor(model=>model.Paymentnumber)
@DisplayNameFor(model=>model.PaymentDate)
@DisplayNameFor(model=>model.Amount)
@Html.DisplayNameFor(model=>model.DisplayNameFor)
@DisplayNameFor(model=>model.Reference)
@DisplayNameFor(model=>model.Bank)
@foreach(模型中的var项目){
@DisplayFor(modelItem=>item.Paymentnumber)
@DisplayFor(modelItem=>item.PaymentDate)
@DisplayFor(modelItem=>item.Amount)
@DisplayFor(modelItem=>item.Discount)
@DisplayFor(modelItem=>item.Reference)
@DisplayFor(modeleItem=>item.Bank)
@ActionLink(“编辑”,“编辑”,新的{id=item.PaymentsId})|
@ActionLink(“详细信息”,“详细信息”,新的{id=item.PaymentsId})|
@ActionLink(“删除”,“删除”,新的{id=item.PaymentsId})
}

那么,我该怎么做呢?

您的
支付
模型包含
客户
虚拟
属性(该属性将由EF“延迟加载”,因此您只需添加另一个表列来显示客户的名称。假设您的
客户
模型具有属性
公共字符串名称{get;set;}
,那么它就是

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

旁注:建议您将属性重命名为
Client
,而不是
Clients
,这表明它是一个集合。

@StephenMuecke我更改了所有建议需要暂停,但您能否显示
付款的模式
(如果您设置正确,它应该有一个
int-ClientID
属性和一个
virtual-Client-Client
属性),我将在30分钟后查看
Payment
模型(由
db.PaymentsList
返回的模型),而不是
PaymentsViewModel
只需在表中添加另一列
@Html.DisplayFor(modelItem=>item.Clients.Name)
假设
Name
是要显示的
Clients
的属性。旁注:将属性命名为
Clients
(复数)当它涉及到一个客户时,建议你考虑RealMeNIT的工作原理……你能解释一下这个例子中的虚拟操作吗?它会让我的客户的ID或类似的东西出现吗?