嗨我在显示特定数据方面有错误。我通过模型传递了一个参数,并且在创建新实例时遇到错误。这是我的代码:
控制器
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult ViewEmployeeSalary(spGetSalaryPerEmployee getsal)
{
var salary = _Context.Set<spGetSalaryPerEmployee>().FromSql("spGetSalaryPerEmployee @empID = {0}", getsal.EmployeeID).AsNoTracking();
return View(salary);
}
查看 这是您单击以重定向到详细信息页面的按钮
@foreach(var item in Model)
{
a class="btn btn-primary btn-sm" asp-controller="Salary" asp-action="ViewEmployeeSalary" asp-route-id="@item.EmployeeId"><span class="glyphicon glyphicon-dashboard" style="vertical-align:middle;margin-top: -5px"></span> Salary Details</a>
}
以下是查看详细信息的页面
@model PEMCOLoan.DAL.Entities.spModels.spGetSalaryPerEmployee
@{
ViewBag.Title = "Salary Details";
}
<h2>@Html.DisplayFor(model => model.FullName)'s Salary Details</h2>
<table class="table">
<tr>
<td class="form-horizontal">ID:</td>
<td>@Html.DisplayTextFor(model => model.EmployeeID)</td>
</tr>
<tr>
<td class="form-horizontal">Salary Amount:</td>
<td>@Html.DisplayFor(model => model.Salary)</td>
</tr>
<tr>
<td class="form-horizontal">Remarks:</td>
<td>@Html.DisplayTextFor(model => model.Remarks)</td>
</tr>
</table>
我收到此错误:
我并不是真的发生了什么,但声明我需要创建一个实例。 我还有一些关于asp.net核心和ef核心的知识,现在仍然在研究这种语言。我真的需要你的帮助,因为我对这种语言有点新意。
任何建议都会非常感激!
答案 0 :(得分:1)
您的控制器方法需要将单个记录作为错误状态返回。现在它返回一个列表,所以你需要改成这样的东西:
var salary = _Context.Set<spGetSalaryPerEmployee>().FromSql("spGetSalaryPerEmployee @empID = {0}", getsal.EmployeeID).AsNoTracking().SingleOrDefault();
//salary now is single record
return View(salary);
也许您需要先检查salary
变量null
,然后再将其传递给查看,因为那时您会遇到错误。