当FromBody mvc core 2.2不起作用时,错误的请求

问题描述 投票:0回答:1

fromBody不适用于Web mvc Core 2.2 for Post In Postman我试图发布一些数据。我让它变得尽可能简单;

我看到错误400 Bad Request

  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# post asp.net-core
1个回答
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()。此外,你需要返回一个json结果,因为你的ajax需要一个返回类型的json。

© www.soinside.com 2019 - 2024. All rights reserved.