我这样做:
http://localhost:53072/Employee/Delete/2
这就是我的行动:
[HttpPost]
public ActionResult Delete(int id)
{
_provider.Delete(id);
return View();
}
为什么它不会在控制器动作中触发删除?
答案 0 :(得分:3)
假设您通过浏览器访问了网址,则会发出GET
个请求,您的操作为POST
。
您可以使用fiddler等工具更改请求,也可以将方法更改为:
[HttpGet]
public ActionResult Delete(int id)
{
_provider.Delete(id);
return View();
}
您也可以省略[HttpGet]
,因为它是默认值。
<强>更新强>
为了使其成为帖子而不是使用ActionLink,您可以执行以下操作:
将此添加到您的视图中,将其包装在开始表单
中@using(Html.BeginForm("Delete", "Controller", FormMethod.Post))
{
@Html.HiddenFor(m => m.Id)
<input type="submit" value="delete" />
}
保持您的行动如下:
[HttpPost]
public ActionResult Delete(int id)
{
_provider.Delete(id);
return View();
}