找不到请求网址

时间:2014-03-18 14:38:40

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我这样做:

http://localhost:53072/Employee/Delete/2

这就是我的行动:

[HttpPost]
        public ActionResult Delete(int id)
        {
            _provider.Delete(id);
            return View();
        }

为什么它不会在控制器动作中触发删除?

1 个答案:

答案 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();
    }