我有一个 ASP.NET WEB-API 2
应用程序需要一个 POST
方法来接受 JOSN
string
具有来自 javascript
的未知结构。
我启用了 cors
和 GET
方法工作正常,但是当从客户端发送 JSON
时,api 的方法参数总是 null
.
这是我的 api
方法:
//parameters i tried:
//[FromBody]string model
//[FromBody]dynamic model
//dynamic model
public HttpResponseMessage Post(string model)
{
return new HttpResponseMessage()
{
Content = new StringContent("POST: Test message: " + model)
};
}
和我的客户端方法:
function sendRequest()
{
var Test = {"Name":"some name"};
var method = $('#method').val();
$.ajax({
type: method,
url: serviceUrl,
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(Test)
}).done(function (data)
{
$('#value1').text(data);
}).error(function (jqXHR, textStatus, errorThrown)
{
$('#value1').text(jqXHR.responseText || textStatus);
});
}
所以问题是我如何从 javascript
发布未知的 JSON 字符串
并在我的 api
方法中接受它作为字符串?
最佳答案
我编辑了你的代码,它运行良好。
[FromBody] 属性指定操作参数仅来自传入 HTTPRequestMessage 的实体主体。
public class TestApiController : ApiController
{
// POST api/<controller>
[HttpPost]
public HttpResponseMessage Post([FromBody]string value)
{
return new HttpResponseMessage()
{
Content = new StringContent("POST: Test message: " + value)
};
}
}
function sendRequest() {
var Test = { "Name": "some name" };
$.ajax({
type: "POST",
url: "api/TestApi",
data: { '': JSON.stringify(Test) }
}).done(function (data) {
alert(data);
}).error(function (jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText || textStatus);
});
}
关于javascript - 将 JSON 字符串发布到 WEB API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36567136/