首页 > 解决方案 > 传入字典的模型项的类型为“System.Collections.Generic.List`1[DB_Payment.Models.GetInvoice]”

问题描述

在 C# MVC 应用程序中出现错误:

传入字典的模型项的类型为“System.Collections.Generic.List`1[DB_Payment.Models.GetInvoice]”,但此字典需要“DB_Payment.Models.GetInvoice”类型的模型项。

控制器:

  List<DB_Payment.Models.GetInvoice> Items = new List<DB_Payment.Models.GetInvoice>();
DataSet ds = new DataSet();
ds = GetItems(customer_code);
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
var chk = new GetInvoice();
chk.customer_code = dr["customer_code"].ToString();
chk.Date_Due = dr["Date_Due"].ToString();
chk.amount = dr["amount"].ToString();
chk.amt_paid = dr["amt_paid"].ToString();
Items.Add(chk);

             }
         }
         return View(Items);

查看代码:

 @model IEnumerable<DB_Payment.Models.GetInvoice>
@using GridMvc.Html
@using System.Web.Mvc.Ajax

@{

 ViewBag.Title = "grid";
 WebGrid grid = new WebGrid(Model, rowsPerPage: 100);
 Layout = "~/Views/Shared/_Layout.cshtml";
}

<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-sm-6">
<h4 class="card-title mb-4">Inventory</h4>
</div>

             </div>
             <div id="webgrid">
                 @Html.Grid(Model).Columns(columns =>
                 {
                     columns.Add(m => m.customer_code).Titled("customer_code");                       
                     columns.Add(m => m.Date_Due).Titled("Date_Due");
                     columns.Add(m => m.amount).Titled("Amount");
                     columns.Add(m => m.amt_paid).Titled("Amt_Paid");
                 }
                 )
             </div>
         </div>
     </div>
 </div>
</div>

有人可以帮忙吗?

标签: asp.net-mvcmodel-view-controller

解决方案


在视图中,将行从 @model IEnumerable<DB_Payment.Models.GetInvoice> 更改为 @model List<DB_Payment.Models.GetInvoice>


推荐阅读