[英]ASP.NET Core MVC and EF Core 1.1
我对如何添加参数有疑问,请参见下面的代码:
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Edit(Employee emp)
{
try
{
Employee updateEmp = _Context.Employee.FirstOrDefault(c => c.Idemployee == emp.Idemployee);
updateEmp.Address = emp.Address;
updateEmp.Age = emp.Age;
updateEmp.ContactNumber = emp.ContactNumber;
updateEmp.FullName = emp.FullName;
updateEmp.Gender = emp.Gender;
updateEmp.IsActive = emp.IsActive;
_Context.Employee.Update(updateEmp);
_Context.SaveChanges();
return RedirectToAction("Index");
}
catch (Exception)
{
throw;
}
}
我在这里想要做的是我正在尝试从查询字符串中提取emp.Idemployee,但它无法将我重定向到错误null异常。
我正在使用一个模型从cshtml提取细节。
public IActionResult Edit(int id)
{
var editEmployee = _Context.Employee.FirstOrDefault(c => c.Idemployee == id);
return View(editEmployee);
}
我不知道这有什么问题,但除Idemployee之外,其他所有信息都已提取。
@model Demo101.DAL.Entities.Models.Employee @{ ViewBag.Title = "Edit Employee"; } <h2>@ViewData["Title"]</h2> <form asp-controller="Employee" asp-action="Edit" method="post" class="form-horizontal" role="form"> <div class="form-horizontal"> <div asp-validation-summary="All" class="text-danger"></div> <!--FullName--> <label asp-for="Idemployee" class="col-md-2 control-label"></label> <div class="col-md-10"> @Html.LabelFor(model => model.Idemployee, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Idemployee) </div> <!--FullName--> <label asp-for="FullName" class="col-md-2 control-label"></label> <div class="col-md-10"> @Html.TextBoxFor(model => model.FullName, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.FullName) </div> <!--Age--> <label asp-for="Age" class="col-md-2 control-label"></label> <div class="col-md-10"> @Html.TextBoxFor(model => model.Age, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Age) </div> <!--ContactNumber--> <label asp-for="ContactNumber" class="col-md-2 control-label"></label> <div class="col-md-10"> @Html.TextBoxFor(model => model.ContactNumber, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.ContactNumber) </div> <!--Address--> <label asp-for="Address" class="col-md-2 control-label"></label> <div class="col-md-10"> @Html.TextBoxFor(model => model.Address, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Address) </div> <!--Gender--> <label asp-for="Gender" class="col-md-2 control-label"></label> <div class="col-md-10"> @Html.TextBoxFor(model => model.Gender, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Gender) </div> <!--IsActive--> <label asp-for="IsActive" class="col-md-2 control-label"></label> <div class="col-md-10"> @Html.CheckBoxFor(model => model.IsActive, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.IsActive) </div> <!--Create Button--> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="Edit Employee" class="btn btn-default" /> </div> </div> </form>
谢谢!
看下面的代码,试试看
<!--IdEmployee-->
<label asp-for="Idemployee" class="col-md-2 control-label"></label>
<div class="col-md-10">
@Html.LabelFor(model => model.Idemployee, new { @class = "form-control" })
@Html.HiddenFor(model => model.Idemployee)
@Html.ValidationMessageFor(model => model.Idemployee)
</div>
您的视图不包含任何具有Employee
值的字段。 您有标签,您有验证消息,但本身没有价值。 因此,在POST到服务器中没有任何价值。
在表格内添加:
@Html.HiddenFor(model => model.Idemployee)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.