显示列表并在列表中添加新项目 asp.net core
Posted
技术标签:
【中文标题】显示列表并在列表中添加新项目 asp.net core【英文标题】:Display a list and add new item in on list asp.net core 【发布时间】:2022-01-13 15:36:15 【问题描述】:我想创建一个视图,该视图将在表格上方和下方的表格中显示一个列表,以将新项目输入到同一列表中,但我收到此错误:
InvalidOperationException:传递到 ViewDataDictionary 的模型项的类型为“System.Collections.Generic.List`1[NAOC_ROW.Models.tbContPaymentHist]”,但此 ViewDataDictionary 实例需要类型为“NAOC_ROW.Models.tbContPaymentHist”的模型项'。
这里是风景
@model IEnumerable<NAOC_ROW.Models.tbContPaymentHist>
@
ViewData["Title"] = "Payment List";
<section class="content">
<div class="container-fluid">
<h3> Payment History</h3>
<hr />
<div class="row">
<div class="col-md-12">
<div class="card card-primary card-outline">
<div class="card-header">
<h3 class="card-title">
<i class="fas fa-edit"></i>
Last Completed Payments
</h3>
</div>
<div class="card-body pad table-responsive">
@if (Model.Count() > 0)
@*scrolling bootstarp table, check css in top of this page*@
<div class="table-wrapper-scroll-y my-custom-scrollbar">
<table class="table table-bordered table-striped mb-0">
<thead>
<tr>
<th scope="col">
@html.DisplayNameFor(model => model.Datepaid)
</th>
<th scope="col">
@Html.DisplayNameFor(model => model.Amtpaid)
</th>
<th scope="col">
@Html.DisplayNameFor(model => model.Balance)
</th>
</tr>
</thead>
<tbody>
</div>
else
<h5>No payments completed yet</h5>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="card card-cyan card-outline">
<div class="card-header">
<h3 class="card-title">
<i class="fas fa-edit"></i>
Add New Payment
</h3>
</div>
<div class="card-body pad table-responsive">
<p><strong>Monthly payments:</strong> ₦@String.Format("0:#,##0.00", @ViewBag.expected)</p>
<p><strong>Current balance:</strong> ₦@String.Format("0:#,##0.00", @ViewBag.bal)</p>
@*<input type="hidden" asp-for="@Model.ContractId" />*@
<hr />
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-info">
<div class="modal-dialog">
<div class="modal-content bg-info">
<div class="modal-header">
<h4 class="modal-title">Info Modal</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>One fine body…</p>
<input type="hidden" value="@ViewBag.bal" name="AmtExpected" />
<partial name="_AddNewPayment" />
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-outline-light" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-outline-light">Save changes</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
</section>
@section Scripts
@
<partial name="_ValidationScriptsPartial" />
如您在脚本中看到的那样,我创建了一个局部视图,希望消除错误,但仍然无法正常工作。我取出了部分代码,以减少您阅读代码的时间。我留下了必要的代码。
欢迎任何帮助。
【问题讨论】:
您必须发布操作以显示用于创建视图模型的代码 你能提供你的动作、模型和原始视图代码吗? 【参考方案1】:根据错误信息,您将List<Model>
类型的值传递给Paritl 视图并在部分视图中使用@model.xxx.Model
。所以你可以像这样更改一些代码:
第一种方式:可以在局部视图中使用@model IEnumerable<NAOC_ROW.Models.tbContPaymentHist>
;
第二种方式:需要将模型传递给局部视图
<partial name="_AddNewPayment" model="new tbContPaymentHist()"/>
【讨论】:
谢谢。工作完美。我用的是第二种方法:The second way : you need to pass a model to the partial view <partial name="_AddNewPayment" model="new tbContPaymentHist()"/>
以上是关于显示列表并在列表中添加新项目 asp.net core的主要内容,如果未能解决你的问题,请参考以下文章
在 ASPX 页面(ASP.NET 站点)的网格内显示来自共享点列表的内容
谷歌驱动器重定向 URI 不匹配以及如何从 ASP.net 核心 2.0 中的谷歌驱动器获取文件列表