Asp.net mvc 传递到局部视图的不相关模型
这可能是一个重复的问题,但我一辈子都不知道解决办法是什么。我正在尝试加载一个局部视图,其中包含一个基于单击链接ID的表 我得到了这个错误: System.InvalidOperationException:'传递到ViewDataDictionary的模型项的类型为'System.Collections.Generic.List'1[MasigasigTrackingSystem.Models.Invoice],但此ViewDataDictionary实例需要'MasigasigTrackingSystem.Pages.Masigasig.MainPage.TripTicket.TripTicketListModel'类型的模型项。' 我似乎不知道该如何将模型传递给局部视图 以下是我的OnGet的外观: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
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的值,并需要将其添加到发票列表中。