当FromBody MVC Core2.2剂量工作时出现错误请求

时间:2019-03-08 05:08:43

标签: c# post asp.net-core

fromBody在Web mvc Core 2.2 for Post中不起作用 在邮递员中,我试图发布一些数据。我已使其变得尽可能简单;

  

我看到错误400错误的请求

  var UserVmodl =
          {
             In_User_Name:'',
             In_Family :$("#Family").val(),
             User_Name :$("#Name").val()
             In_National_Code :$("#National_Code").val(),
             In_Birth_Date_sh :$("#dateBirth_Date").val(),
              In_Email:$("#Email").val()
          }
  $.ajax({
            url: '@Url.Action("SaveUser", "PersonalInfo")',
            type: 'POST',
            data: JSON.stringify(UserVmodl ),
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
             async: true,
            beforeSend: function (request) {
                sendRequestVerificationToken(request);
            },
            success: function (data) { localSuccess(data); onSuccessFunc(data); }
        });

[Route("PersonalInfo")]
  [Area("client")]
  public class PersonalInfoController : Controller
  {

   [HttpPost]
    [Route("save")]
    public  IActionResult SaveUser([FromBody] PersonalInfo UserVmodl)
    {
      //var Result= _IUserService.UpdateUser(UserVmodl);
      return View();
    }
}

1 个答案:

答案 0 :(得分:1)

如果需要添加防伪验证,请尝试从标头发送RequestVerificationToken。

 $.ajax({
                url: '@Url.Action("SaveUser", "PersonalInfo")',
                type: 'POST',
                headers : {
                  RequestVerificationToken:
                      $('input:hidden[name="__RequestVerificationToken"]').val()
                },                   
                data: JSON.stringify(UserVmodl),
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                async: true,
                success: function (data) { localSuccess(data); onSuccessFunc(data); }
            });

请记住在表单中添加@Html.AntiForgeryToken()。 此外,由于您的ajax需要返回类型为json,因此您需要返回json结果。