gpt4 book ai didi

asp.net-mvc - 使用 GET 的 MVC AttributeRouting - 返回 405 - 方法不允许

转载 作者:行者123 更新时间:2023-12-01 11:43:53 29 4
gpt4 key购买 nike

我刚刚一直在研究一种新的 Controller 操作方法,我有点困惑为什么会看到 405。

我已经在我的 API 上定义了几个 GET 属性方法,它们都按预期运行。例如,这很好用:

    [GET("entries/{page}"), JsonExceptionFilter]
public HttpResponseMessage GetEntries(int page)

然而我的新方法是这样定义的:

    [GET("search/{searchTerm}/{page}"), JsonExceptionFilter]
public HttpResponseMessage Search(string searchTerm, int page)

正在返回 405

如果我访问 API 上的 routes.axd url,我可以在表中看到这样的条目:

GET, HEAD, OPTIONS  users/search/{searchTerm}/{page}

这一切看起来都是正确的。在客户端,我使用 HttpClient 对两个请求使用相同的方法:

var response = httpClient.GetAsync(ApiRootUrl + "users/search/" + searchTerm + "/" + page).Result;

从 Fiddler 运行 get 也会返回 405。

即使查看响应中的 RequestMessage 看起来也是正确的:

"{Method: GET, RequestUri: 'http://localhost:51258/users/search/jam/0'"

完全被这个难住了。

我还能尝试什么来阐明问题所在?

最佳答案

您需要使用一个名为 System.Web.Http.HttpGetAttribute 的属性来修饰 Search 操作。对于这背后的原因,您可以在下面的帖子中查看我的回答:

405 when using AttributeRouting.PUTAttribute unless I also include HttpPutAttribute

关于asp.net-mvc - 使用 GET 的 MVC AttributeRouting - 返回 405 - 方法不允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17235826/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com