在MVC5中向WebApi传递JSON
本文关键字:传递 JSON WebApi 中向 MVC5 | 更新日期: 2023-09-27 17:51:08
在我的mvc5项目中,我面临着从jquery传递json数组到webapi的语法问题。
以下是我的代码:- c#代码:- //获得实例 // GET: api/PostDatas
public IQueryable<PostData> GetPostDatas()
{
return db.PostDatas;
}
//POST实例 // POST: api/PostDatas
[ResponseType(typeof(PostData))]
public IHttpActionResult PostPostData(PostData postData)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.PostDatas.Add(postData);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = postData.postDataID }, postData);
}
JQuery <script>
function fnpostdata() {
var model = {
"userid": "01",
"Description": "Desc",
"photoid": "03"
};
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json",
url: "/api/PostDatas/",
data: model,
success: function (data) {
alert('success');
},
error: function (error) {
jsonValue = jQuery.parseJSON(error.responseText);
jError('An error has occurred while saving the new part source: ' + jsonValue, { TimeShown: 3000 });
}
});
}
</script>
我不能使用jquery发送数据到我的c#控制器,只需要理解语法。
检查代码中的以下内容:1)方法属性[HttpPost]2) [FromBody]用于输入模型3)检查PostData类,它应该包含userid, Description和photoid的公共属性,变量名区分大小写。
,主要更改您的AJAX请求代码为:
function fnpostdata() {
var model = {
"userid": "01",
"Description": "Desc",
"photoid": "03"
};
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json",
url: "/api/PostDatas/",
data: JSON.stringify(model), //i have added JSON.stringify here
success: function (data) {
alert('success');
},
error: function (error) {
jsonValue = jQuery.parseJSON(error.responseText);
jError('An error has occurred while saving the new part source: ' + jsonValue, { TimeShown: 3000 });
}
});
}
请让我知道,这对你有用吗?
我在之前的项目中将[FromBody]
包含在参数中。像这样:
[HttpPost]
public IHttpActionResult Register([FromBody]PostData postData)
{
// some codes here
}
我能够从那个符号中读取JSON数据。