我有一个控制器,该方法在Web APIweb api post方法可以包含多个参数吗?
public class UserController : ApiController
{
[HttpPost]
public HttpResponseMessage Login(string name, string password){
//dothings
}
}
但如果我尝试一个Ajax请求:
$.ajax({
type: "POST",
url: "http://localhost:19860/Api/User/Login",
data: { name: "name", password: "12345" },
success: succ,
error: err
});
它给我的错误:
消息:“没有HTTP发现与请求URI'http://localhost:19860/Api/User/Login'匹配的资源。“ MessageDetail:“在控制器'用户'上找不到与请求匹配的操作。”
但是,如果我删除它的工作参数!
public class UserController : ApiController
{
[HttpPost]
public HttpResponseMessage Login(){
string name= HttpContext.Current.Request.Params["name"];
string password= HttpContext.Current.Request.Params["password"];
// name and password have the value that i passed in the ajax call!!
}
}
为什么它是这样的?
对于这个问题无关的原因,我不能更改Web API,所以我必须在十个分量:
公共HttpResponseMessage登录(字符串名称,字符串密码)
格式。
我可以维持这种格式并能够进行ajax调用吗?
第一个选项的工作完美,我没有想到,谢谢 – 2015-02-24 11:22:09
@AlbertCortada欢迎只是**注意**:通过URL传递凭据是不好的做法,所以我会建议如果可能为您选择第三个选项。 – 2015-02-24 11:31:13
现在这是不可能的,但我会在即将到来的代码评论中考虑到这一点 – 2015-02-24 11:49:21