我正在使用以下请求来访问网络服务(来自Chrome开发人员面板的copypaste):
Request URL:https://localhost:44300/api/userpreferences
Request Method:POST
Status Code:405 Method Not Allowed
Request Headersview source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Length:51
Content-Type:application/json;charset=UTF-8
Host:localhost:44300
Origin:http://localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36
Request Payloadview source
{userName:asasa, projectId:2}
projectId: 2
userName: "asasas"
到具有这种签名的webservice方法:
[HttpPost]
public replyObj setCurrentProject(string userName, int projectId)
{
/// ...
}
如你所见,我在每个细节上都遵循了界面。如果我将方法改为PUT,即使sugnature不匹配,也会使用[HttpPut]属性调用其他方法,这个配置只给我{" Message":"请求的资源不支持http方法' POST'。"} 与我宣称的相反。
答案 0 :(得分:1)
最近我遇到了同样的问题。您的方法签名似乎与路线不匹配。 将您的方法更改为
public replyObj setCurrentProject(dynamic value)
{
/// ...
}
或者您可以使用适当的班级代替dynamic