我在如何添加参数方面有疑问,请参阅下面的代码:
[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,但是它不能,并将我重定向到错误空异常。
我使用一个模型从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>
谢谢!
发布于 2017-03-22 07:48:30
看我下面的代码,试试这个
<!--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>发布于 2017-03-22 07:48:20
您的视图不包含任何具有Employee值的字段。您有标签,有验证消息,但没有价值本身。因此,您在POST到server中没有任何价值。
在表格中添加以下内容:
@Html.HiddenFor(model => model.Idemployee)https://stackoverflow.com/questions/42945311
复制相似问题