【发布时间】:2014-09-26 05:14:39
【问题描述】:
我正在尝试测试我的 asp api。
其中一个端点需要从浏览器获取一个 json 对象。为了测试这一点,我将一个 json 对象放入一个文本字段,然后对我的 api 进行 ajax 调用。 api被命中时,json对象始终为null。
我已经查看了这篇帖子:how to pass json post data to web api method as object,但这并没有解决我的问题。
这是我的对象:
{ "userName": "063bcdf2-36fd-4b8c-a5af-808da63744f6",
"password" : "Password"
}
这是我的 ajax 调用:
var submission = function () {
var url = urlBase + "/api/Submission/";
var testdata = $("input[name=submission]").val();
alert(testdata);
$.ajax(url, {
type: "POST",
data: JSON.parse(testdata),
contentType: 'application/x-www-form-urlencoded'
}).always(showResponse)
return false;
};
这是我的 api:
[HttpPost]
[ResponseType(typeof(SubmissionOutputModel))]
public IHttpActionResult POST([FromBody]SubmissionInputModel submission )
{
if (ModelState.IsValid)
{
SubmissionService service = new SubmissionService();
return Json(service.Submit(submission));
}
else
{
return BadRequest("Invalid Model State");
}
}
提交输入模型:
public class SubmissionInputModel
{
[Required]
public string userName { get; set; }
[Required]
public string password { get; set; }
}
ajax 中的警报显示数据正在发送,并且在调试模式下,api 被命中,但提交对象未设置为从 ajax 调用发送的数据。
如果有人可以提供帮助,将不胜感激!
【问题讨论】:
标签: javascript asp.net ajax asp.net-mvc json