传递给局部视图的模型不正确

Incorrent model passed to Partial View

这可能是一个重复的问题,但我一辈子都不知道解决方案是什么。我正在尝试根据点击的 link.

的 ID 加载带有 table 的部分视图

我收到此错误:

System.InvalidOperationException: 'The model item passed into the ViewDataDictionary is of type 'System.Collections.Generic.List`1[MasigasigTrackingSystem.Models.Invoice]', but this ViewDataDictionary instance requires a model item of type 'MasigasigTrackingSystem.Pages.Masigasig.MainPage.TripTicket.TripTicketListModel'.'

我似乎无法弄清楚应该如何将模型传递给局部视图。

这是我的 OnGet 的样子:

     public IList<Invoice> Invoice { get; set; }

    public PartialViewResult OnGetDetails(int TripTicketID)
    {
        var invoices = from m in _context.Invoice
                       select m;

        invoices = invoices.Where(x => x.TripTicketID == TripTicketID);

        Invoice = invoices.ToList();

        return Partial("_TripTicketListDetails", Invoice);
    }

这是我的部分观点:

@model TripTicketListModel
<h1>Hello, test</h1>
<table id="TripEntryList" class="table table-bordered table-hover">
<thead>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Invoice[0].InvoiceNumber)
        </th>
    </tr>
</thead>
<tbody>
    @foreach (var item in Model.Invoice)
    {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.InvoiceNumber)
        </td>
    </tr>
    }
</tbody>

您需要部分视图 TripTicketListModel 并且您正在传递模型 Invoice。这意味着你传递了错误的模型。

根据你的 View 代码,我可以说你的 InvoiceTripTicketListModel 中使用,所以请尝试以下解决方案。

 public PartialViewResult OnGetDetails(int TripTicketID)
 {
        var invoices = from m in _context.Invoice select m;

        invoices = invoices.Where(x => x.TripTicketID == TripTicketID);

        TripTicketListModel model = new TripTicketListModel();
        model.Invoice = invoices.ToList();

        return Partial("_TripTicketListDetails", model);
}