使用jQuery发布到ASP.Net webapi

时间:2013-10-28 04:05:26

标签: jquery post asp.net-web-api

遇到麻烦:

我做了这个简单的测试,警告弹出文本“test return simple”:

jQuery帖子:

$.post("http://www.localhost/webapi/api/corkboard/test/", jsonData)
            .done(function(data){
                alert(data);
        });

Asp.Net WebAPI:

[HttpPost]
public string test()
{        
    return "test return simple";
}

但是当我通过添加参数来更改WebAPI时:

public string test(string JSONData)
    {
        var jData = Json.Decode(JSONData);
        return "test return: " + jData.Filter;            
    }

我收到以下错误消息:

“找不到与请求URI'http://www.localhost/webapi/api/corkboard/test/'

匹配的HTTP资源

坚持并感激任何想法......谢谢!

2 个答案:

答案 0 :(得分:14)

将您的Web Api方法更改为:

public string test([FromBody]string JSONData)
    {
        var jData = Json.Decode(JSONData);
        return "test return: " + jData.Filter;            
    }

和你的JQuery:

$.post('http://www.localhost/webapi/api/corkboard/test/', { '': jsonData })
        .done(function(data){
            alert(data);
    });

答案 1 :(得分:6)

请尝试以下代码..

$.post("http://www.localhost/webapi/api/corkboard/test/", { value: jsonData })
            .done(function(data){
                alert(data);
        });

或者,您可以查看以下链接..

http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/