0
votes

This might be a duplicate question but I can't for the life of me know what the solution is. I'm trying to load a partial view with a table based on the ID of a clicked link.

I'm getting this error:

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'.'

I can't seem to figure out how should I passed the model to the partial view.

Here is what my OnGet looks like:

     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);
    }

Here is my partial view:

@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>

1

1 Answers

0
votes

You Partial View Required TripTicketListModel and you are passing the model Invoice. It means you are passing wrong model.

From your View code i can say your Invoice is used inside TripTicketListModel, so try below solution.

 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);
}