在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#控制器,只需要理解语法。

在MVC5中向WebApi传递JSON

检查代码中的以下内容: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数据。