我正在使用asp net core并且有一个典型的场景来从我的数据库中删除记录并重定向回到详细视图,但我不确定我是否以安全和最佳实践方式进行操作。
查看表单
<form asp-controller="Client" asp-action="DeleteSanction" asp-route-id="@Model.ClientSanctionID" asp-route-redirectid="@Model.ClientID">
<button type="submit" class="btn btn-block btn-flat btn-danger">Delete</button>
</form>
控制器操作......
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteSanction(int id, int redirectId)
{
if (await _dataClient.DeleteSanction(id) == false)
{
TempData["ToastType"] = "error";
TempData["ToastContent"] = "Unknown database error";
}
return RedirectToAction("Detail", new { id = redirectId });
}
这一切都运转正常,但提交没有任何表格值的表格并仅使用路由参数感觉很狡猾。
问题...
提交表单并根据路由参数删除/更新数据库记录是否安全/良好做法,而不仅仅是表单值?