c# ajax+webapi(.Net .Net Core)

Asp.Net

1.Get

后台:普通类型传参

public string Get(string name, string pwd) { return $"{name}-{pwd}"; }

前台:

$.ajax({ type: 'Get', url: 'http://localhost:64133/api/ByGet', data: { "Name": "张三", "Pwd": "123" }, contentType: 'application/json', success: function (data) { console.log(data); } })

$.ajax({ type: 'Get', url: 'http://localhost:64133/api/ByGet?name=张三&pwd=123', success: function (data) { console.log(data); } })

后台:实体类传参

public string Get([FromUri] Login login) { return $"{login.Name}-{login.Pwd}"; }

前台:

$.ajax({ type: 'Get', url: 'http://localhost:64133/api/ByGet', data: { "Name": "张三22", "Pwd": "123" }, success: function (data) { console.log(data); } })

2.Post

后台:实体类传参

public string Post(Login login) { return $"{login.Name}-{login.Pwd}"; }

前台:

$.ajax({ type: 'Post', url: 'http://localhost:64133/api/ByPost', data: { "Name": "张三", "Pwd": "123" }, success: function (data) { console.log(data); } })

$.ajax({ type: 'Post', url: 'http://localhost:64133/api/ByPost', data: JSON.stringify({ Name: "张三", Pwd: "123" }), contentType: 'application/json', success: function (data) { console.log(data); } })

后台:动态类型dynamic 传参

public string Post(dynamic login) { return $"{login.Name}-{login.Pwd}"; }

前台:

$.ajax({ type: 'Post', url: 'http://localhost:64133/api/ByPost', data: JSON.stringify({ Name: "张三", Pwd: "123" }), contentType: 'application/json', success: function (data) { console.log(data); } })

后台:JObject 类型传参

  1. 引入NewtonsoftJson包

  2. 添加引用 using Newtonsoft.Json.Linq;

  3. 后台处理Post请求代码

public string Post(JObject login) { return $"{login["Name"]}-{login["Pwd"]}"; }

前台:

$.ajax({ type: 'Post', url: 'http://localhost:64133/api/ByPost', data: JSON.stringify({ Name: "张三3", Pwd: "123" }), contentType: 'application/json', success: function (data) { console.log(data); } })

$.ajax({ type: 'Post', url: 'http://localhost:64133/api/ByPost', data: { Name: "张三3", Pwd: "123" }, success: function (data) { console.log(data); } })

后台:单值参数(字符串参数)

public string Post4([FromBody] string student) { return $"{student}"; }

前台:

$.ajax({ type: 'Post', url: 'http://localhost:64133/api/ByPost', data: '"Pwd=123,Name=张三"',//这里是重点!用单引号包一个双引号,双引号里为字符串内容! contentType: "application/json", success: function (data) { console.log(data); } })

Asp.Net Core

1.Get

后台:

[HttpGet("Get1")] //普通类型传参 public string Get1(int Id,string Name) { return $"{Id}-{Name}"; }

[HttpGet("Get2")] //json字符串传参或者实体类传参 public string Get2(string stu) { Student student = Newtonsoft.Json.JsonConvert.DeserializeObject<Student>(stu); return $"{student.Id}-{student.Name}"; }

前台:

//路径里面参数,后台Get1(int Id,string Name) $.ajax({ url: 'https://localhost:44304/api/Get/get1?Id=1&Name=张三', type: 'get', success: function (data) { console.log(data); }, error: function (err) { console.log(err); } })

//路径里面参数,后台Get1(int Id,string Name) $.ajax({ url: 'https://localhost:44304/api/Get/get1', type: 'get', data: { Id: 1, Name: "张三" }, success: function (data) { console.log(data); }, error: function (err) { console.log(err); } })

//路径里面参数,后台Get2(string stu) Student student = Newtonsoft.Json.JsonConvert.DeserializeObject<Student>(stu); $.ajax({ url: 'https://localhost:44304/api/Get/get2', data: { stu: JSON.stringify({ Id: 1, Name: "张三" }) }, type: 'get', success: function (data) { console.log(data); }, error: function (err) { console.log(err); } })

2.Post

后台:

    [HttpPost("Post1")]//实体类
    public string Post1(Student student)
    {
        return $"{student.Id}-{student.Name}";
    }
        
    [HttpPost("Post2")]//dynamic动态类型
    public string Post2(dynamic stu)
    {
        dynamic student = JsonConvert.DeserializeObject(Convert.ToString(stu));
        return $"{student.Id}-{student.Name}";
    }
​
    引入Microsoft.AspNetCore.Mvc.NewtonsoftJson包
    添加引用 using Newtonsoft.Json.Linq;
    3.0以后需要为Controllers添加NewtonsoftJson注册(services.AddControllers().AddNewtonsoftJson();)
    [HttpPost("Post3")]//JObject参数
    public string Post3(JObject student)
    {
        return $"{student["Id"]}-{student["Name"]}";
    }
​
    [HttpPost("Post4")]//单值参数(字符串参数)
    public string Post4([FromBody] string student)
    {
        return $"{student}";
    }

前台:

//Post1(Student student)
$.ajax({
    url: 'https://localhost:44304/api/Post/post1',
    type: 'post',
    data: JSON.stringify({ "Id": 1, "Name": "张三" }),//必须这样子
    contentType: 'application/json',//必须要有contentType
    success: function (data) {
       console.log(data);
    },
    error: function (err) {
        console.log(err);
    }
 })
 
//Post2(dynamic student)
$.ajax({
    url: "/api/Post/post2",
    type: 'POST',
    data: JSON.stringify({ "Id": 1, "Name": "张三" }),
    //dataType: "json",
    contentType: "application/json",
    success: function (data) {
        console.log(data);
    },
    error: function (err) {
        console.log(err);
    }
   
});
​
//Post3(JObject student)
$.ajax({
    url: "/api/Post/post3",
    type: 'POST',
    data: JSON.stringify({ "Id": 1, "Name": "张三" }),
    contentType: "application/json",
    success: function (data) {
        console.log(data);
    },
    error: function (err) {
        console.log(err);
    }
​
});
​
//Post4(string student)
$.ajax({
    url: "/api/Post/post4",
    type: 'POST',
    data: '"Id=1,Name=张三"',//这里是重点!用单引号包一个双引号,双引号里为字符串内容!
    contentType: "application/json",
    success: function (data) {
        console.log(data);
    },
    error: function (err) {
        console.log(err);
    },
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值