首页 > 解决方案 > 错误请求 whenFromBody mvc core2.2 dosent 工作

问题描述

fromBody 在 Web mvc Core 2.2 中不适用于 Post In Postman 我正在尝试发布一些数据。我已经尽可能简单了;

我看到错误 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();
    }
}

标签: c#postasp.net-core

解决方案


如果您需要添加防伪验证,请尝试从标头发送 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()在您的表格中添加。此外,您需要返回 json 结果,因为您的 ajax 需要返回类型为 json。


推荐阅读