我刚刚在研究一种新的控制器操作方法,我有点困惑为什么会看到 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 上的 paths.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'"
完全被这个难住了。
我还能尝试什么来阐明问题所在?