MVC5 WebAPI post请求后端拿不到值的问题

MVC WebAPI get和post请求

这里我使用Jquery 来发起异步请求实现数据调用.。

新建一个index.cshtml

  代码忽略(引用js包等),调用代码如下:

 $("button[name='login']").click(function () {
        var body = {};
        var user = {};
        var username = $("input[name='a_Alias']").val();//用户名
        var password = $("input[name='a_Password']").val();//密码
        if (username == "") {
            toastr.error("用户名不能为空");
            return;
        } else if (password == "") {
            toastr.error("密码不能为空");
            return;
        }
        user["a_Alias"] = username;
        user["pwd"] = password;
        body["OpType"] = "GET";
        body["ConfigType"] = "View";
        body["ConfigName"] = "SystemUser";
        body["RequestBody"] = JSON.stringify(user);
        body = JSON.stringify(body); (一定要转换成json字符串)
        //var u = JSON.stringify(body);
        $.ajax({
            url: "/api/login/TestApi",
            contentType: "application/json",  ----传递json格式请求数据
            type:"POST",
            data: body,
            dataType:"JSON",                   -----接收返回json格式数据
            success: function (data) {
                console.log(data);
            }, error: function (data) {
                console.log(data);
            }
        });
    })

到这里前端已经结束了,最主要的是后端接收数据,经常遇到null值的问题,下面我主要讲解一下后端接收参数的解决方案,目前我研究了两套解决方案,经过测试没有问题.如下:

   利用JObject对象接收参数如下(必须引用using Newtonsoft.Json.Linq):

    MVC5 WebAPI post请求后端拿不到值的问题_第1张图片

第二种就是常用的方法定义一个实例类接收参数

    MVC5 WebAPI post请求后端拿不到值的问题_第2张图片

  WebParameterContext是我自己封装的一个实例类方法,代码就不贴了,就是简单的get,set,如果还有什么问题可以留言.


你可能感兴趣的:(asp.net)