未标记 AcceptVerbs、HttpGet 或 HttpPost 的控制器操作的默认行为是什么?

发布于 2024-09-18 20:55:51 字数 109 浏览 11 评论 0原文

如果我创建一个控制器操作并且不使用 AcceptVerbs、HttpPost 或 HttpGet 来装饰它。默认行为是什么?

该操作是否允许任何访问方法或者默认为GET

If I create a controller action and do not decorate it with AcceptVerbs, HttpPost or HttpGet. What is the default behaviour?

Does the action allow any access method or does it default to GET?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

叫思念不要吵 2024-09-25 20:55:52

它可以通过任何动词访问。

It's accessible via any verb.

听你说爱我 2024-09-25 20:55:52

在 Web API 2.1 中:

这取决于操作的名称。如果操作以“Get*”开头,那么它将默认只接受 GET 请求。如果它以“Put*”开头,那么它将默认只接受 PUT 请求。与 POST 相同。

如果它不以任何已知动词开头,那么它将默认只接受 POST。

以下是我的测试结果:

public class BlahController : ApiController
{
    // only allows GET
    public string GetSomething() { return "GetSomething blah"; }

    // only allows PUT
    public string PutSomething() { return "PutSomething blah"; }

    // only allows POST
    public string PostSomething() { return "PostSomething blah"; }

    // only allows POST
    public string Fleabag() { return "Fleabag blah"; }
}

In Web API 2.1:

it depends on the name of the action. If the action starts with "Get*" then it will default to only accept GET requests. If it starts with "Put*" then it will default to only accept PUT requests. Same with POST.

If it doesn't start with any known verb then it will default to only accept POST.

Here are the results of my testing:

public class BlahController : ApiController
{
    // only allows GET
    public string GetSomething() { return "GetSomething blah"; }

    // only allows PUT
    public string PutSomething() { return "PutSomething blah"; }

    // only allows POST
    public string PostSomething() { return "PostSomething blah"; }

    // only allows POST
    public string Fleabag() { return "Fleabag blah"; }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文