欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

记一次webapi传参数的问题

程序员文章站 2022-03-29 12:45:56
.net小白一枚,经过了几个小时的研究,由于错误的写法导致后台始终接受不到前台传递过来的参数。首先看看控制器的参数 本人实在是偷懒才使用dynamic关键字,ajax使用如下写法,会一直出现 不能绑定null或者是account没有之类的错误。 设置了content-type后台也不能接收到。这比较 ......

.net小白一枚,经过了几个小时的研究,由于错误的写法导致后台始终接受不到前台传递过来的参数。首先看看控制器的参数

public Core.MVC.ServiceResult<DTO.Out.MenberLoginOutDto> Login(dynamic obj)
        {
            tb_Member temp = Service.MemberService.LoginNew(obj.Account.ToString(), obj.Pwd.ToString());
        }

本人实在是偷懒才使用dynamic关键字,ajax使用如下写法,会一直出现 不能绑定null或者是account没有之类的错误。

$.ajax({
                    type: "POST",
                    url: "http://localhost:1566/api/logic/Login",
                    headers: {
                        "Content-Type":"application/json"
                    },
                    data: { LoginAccount: 'xxxx', LoginPassword: 'xxxxx'},
                    success: function (data, status) {

                    }
                });

设置了content-type后台也不能接收到。这比较郁闷了,因为在postman是可以访问的。但是仔细观察了请求参数后,发现了一个问题,上述方式是传递了一个对象(因为可以折叠)。postman只是传递一个json字符串,现在想想自己真的是太笨了。改成如下方式后台就可以顺利的接收到了

记一次webapi传参数的问题
$.ajax({
                    type: "POST",
                    url: "http://localhost:1566/api/logic/Login",
                    headers: {
                        "Content-Type":"application/json"
                    },
                    data: JSON.stringify({ LoginAccount: 'xxxx', LoginPassword: 'xxxxx' }),
                    success: function (data, status) {

                    }
                });
View Code