【发布时间】:2021-03-27 00:23:54
【问题描述】:
技术信息: 框架 = Asp.Net Core 3.1 IDE = VisualStudio 2019
问题:
我有一个带有更新和删除操作方法的控制器。我有 UpdateView 和 DeleteView 从我需要重定向到相应的控制器。我已经实现了一个可以提交表单的按钮。我仍然面临 HTTP ERROR 405 与 PUT & DELETE 相关的问题。有人可以帮我解决这个问题。提前致谢
控制器:
[HttpPut]
[ActionName("ModifyEmployee")]
public IActionResult ModifyEmployee(int employeeId, Malips.Data.Employee employee)
{
if (ModelState.IsValid)
{
Malips.Data.Employee employeeDetail = _hrService.EmployeeSystem.UpdateEmployee(employee);
return View("GetEmployee", employeeDetail);
}
return View();
}
[HttpDelete]
public IActionResult DeleteEmployee(int employeeId)
{
_hrService.EmployeeSystem.DeleteEmployee(employeeId);
return View("Index");
}
更新视图:
@model Employee
@{
ViewBag.Title = "Modify Employee";
}
<div>
<form asp-controller="Hr" asp-action="ModifyEmployee" asp-route-employeeId="@Model.EmpId">
<div class="form-group">
<div asp-validation-summary="All" class="text-danger">
</div>
</div>
@Html.HiddenFor(e => e.EmpId)
<div class="form-group row">
<label asp-for="FirstName" class="col-sm-2">First Name</label>
<input asp-for="FirstName" class="col-sm-10" />
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
<button type="submit" class="btn btn-info">Update</button>
</form>
</div>
删除视图:
<form asp-controller="Hr" asp-action="DeleteEmployee" asp-route-employeeId="@Model.EmpId">
<div class="row card" style="width: 18rem;">
<div class="card-body">
<label hidden="hidden">@Model.EmpId</label>
<h5 class="card-title">@Model.FirstName @Model.LastName</h5>
<p class="card-text">@Model.Salary </p>
<button type="submit" class="btn btn-danger">Delete</button>
</div>
</div>
</form>
【问题讨论】:
-
嗨@Joseph Nannepaga,有关于这个案例的最新消息吗?
-
嗨@Yinqiu,很少有人建议使用Ajax 调用。但是,我正在寻找完美的解决方案,即没有 Ajax nd 仅使用 Razor lib。
-
嗨@Joseph Nannepaga,我认为使用httppost 比httpput 和httpdelete 更好。
标签: asp.net-core .net-core asp.net-core-mvc asp.net-core-3.1