删除方法不起作用

阿夫罗洪·伊斯洛尔(Avrohom Yisroel)

我编写了一个WebApi控制器,其中包含以下用于删除客户端的方法...

[HttpDelete]
public void DeleteClient(int id) {
  // do stuff here
}

...并且正在尝试通过在网页上使用以下HTML进行测试...

<form method="DELETE" action="/api/ClientsXml/">
  <table style="padding: 5px">
    <tr>
      <td>ID</td>
      <td><input type="text" size="20" name="id" id="id" /></td>
    </tr>
    <tr>
      <td> </td>
      <td><input type="submit" value="Send" /></td>
    </tr>
  </table>
</form>

但是,从不调用DeleteClient方法。它将请求传递给GetClient方法。

任何人知道为什么吗?我已经尝试了各种各样的变体,但是我无法调用delete方法。

西蒙·c

@DimitryS的答案是正确的,但我认为我会在此基础上再加一点。

HTML表单仅允许GET和POST操作。这是HTML 5规范以及HTML <4规范中的最新内容。

使用XMLHttpRequest时允许使用其他HTTP方法,这是jQuery的ajax功能的基础。因此,一个不错的选择可能是对您的PUT,DELETE使用jQuery,并且它应该在所有主要的浏览器中都可以使用(在这个非常明确的SO问题中对此进行了一些讨论:大多数Web浏览器中都提供PUT,DELETE,HEAD等方法吗? ?)。

最后,我要说的是,如果您只是使用表单来测试您的API,那么为什么不尝试使用浏览器扩展:例如

还有更多,但大多数允许您保存测试套件,设置不同的标头等。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章