Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 传递到局部视图的不相关模型_Asp.net Mvc_Asp.net Core_Razor_Razor Pages - Fatal编程技术网

Asp.net mvc 传递到局部视图的不相关模型

Asp.net mvc 传递到局部视图的不相关模型,asp.net-mvc,asp.net-core,razor,razor-pages,Asp.net Mvc,Asp.net Core,Razor,Razor Pages,这可能是一个重复的问题,但我一辈子都不知道解决办法是什么。我正在尝试加载一个局部视图,其中包含一个基于单击链接ID的表 我得到了这个错误: System.InvalidOperationException:'传递到ViewDataDictionary的模型项的类型为'System.Collections.Generic.List'1[MasigasigTrackingSystem.Models.Invoice],但此ViewDataDictionary实例需要'MasigasigTracking

这可能是一个重复的问题,但我一辈子都不知道解决办法是什么。我正在尝试加载一个局部视图,其中包含一个基于单击链接ID的表

我得到了这个错误:

System.InvalidOperationException:'传递到ViewDataDictionary的模型项的类型为'System.Collections.Generic.List'1[MasigasigTrackingSystem.Models.Invoice],但此ViewDataDictionary实例需要'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);
    }
public IList发票{get;set;}
公共部分安全结果OnGetDetails(int TripTicketID)
{
var发票=来自_context.Invoice中的m
选择m;
发票=发票。其中(x=>x.TripTicketID==TripTicketID);
发票=发票。ToList();
返回部分(“TripTicketListDetails”,发票);
}
以下是我的部分观点:

@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>
@model TripTicketListModel
你好,测试
@Html.DisplayNameFor(模型=>model.Invoice[0].InvoiceNumber)
@foreach(模型发票中的var项目)
{
@DisplayFor(modelItem=>item.InvoiceNumber)
}

您需要部分查看
TripTicketListModel
,并且您正在传递模型
发票
。这意味着你通过了错误的模型

从您的
视图
代码中,我可以说您的
发票
TripTicketListModel
中使用,因此请尝试以下解决方案

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


谢谢这是可行的,只是另一个问题,我的发票表中有一个用户id,但我想将其连接到我的用户表,以便在传递到部分视图时,它将显示名称而不是id。我如何尝试这样做?为此,您需要在发票模型中添加name属性,并且当您获得发票列表的值时,此时,您需要从id中找到name的值,并需要将其添加到发票列表中。