【发布时间】:2017-09-26 06:54:36
【问题描述】:
您好,我的代码有问题,它似乎与实例有关,但我已经在控制器中声明了一个实例,它似乎不起作用。
我收到了这个错误:
InvalidOperationException:传递到 ViewDataDictionary 的模型项的类型为“Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[PEMCOLoan.DAL.Entities.spModels.spGetLedger]”,但此 ViewDataDictionary 实例需要类型为模型项'PEMCOLoan.Web.Models.Ledger'。
控制器
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult getEmployeeLedger(spGetLedger ledger)
{
var firstDay = _Context.LoanPayments.Min(min => min.DateOfPayment);
var lastDay = _Context.LoanPayments.Max(max => max.DateOfPayment);
//Set Test data
//Set Parameter
var StartDate = new SqlParameter("StartDate", firstDay);
var EndDate = new SqlParameter("EndDate", lastDay);
var EmpID = new SqlParameter("EmployeeID", ledger.EmployeeID);
var LoanTypeID = new SqlParameter("LoanType", ledger.LoanTypeID);
Ledger newLedger = new Ledger();
newLedger.enumledger = _Context.Set<spGetLedger>().FromSql("EXECUTE spGetLedger @EmployeeID, @LoanType, @StartDate, @EndDate", EmpID, LoanTypeID, StartDate, EndDate).AsNoTracking();
//var empLedger = _Context.getLedger
return View(newLedger.enumledger);
}
观看次数
@model PEMCOLoan.Web.Models.Ledger
@{
ViewBag.Title = "Ledger";
}
<h2>View @Model.ledger.FullName's Ledger</h2>
<h3>Loan Name: @Model.ledger.LoanName</h3>
<h3>Total Loan Amount: @Model.ledger.TotalLoanAmount</h3>
@if (Model.enumledger.Any())
{
<table class="table table-responsive">
<tr>
<th>Date Paid</th>
<th>Principal Amount</th>
<th>Interest</th>
<th>Total</th>
</tr>
@foreach(var item in Model.enumledger)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.PaymentDate)</td>
<td>@Html.DisplayFor(modelItem => item.TotalLoanAmount)</td>
<td>@Html.DisplayFor(modelItem => item.Interest)</td>
<td>@Html.DisplayFor(modelItem => item.Total)</td>
</tr>
}
</table>
}
<h3>Balance: @Model.ledger.Balance</h3>
【问题讨论】:
标签: c# asp.net-core entity-framework-core