.Net WebApi get,post,put,delete 参数传递

.Net WebApi get,post,put,delete 参数传递

webapi 这玩意传参可真鸡恶心坏我了,试了好多东西,我整理了整理,小总结了以下

Get

get的几种方式
前端请求代码
//get1
    $.ajax({
        url: '/api/webapitry',
        type: "get",
        success: function (a) {
        	console.log(a);
        }
    })
  //get2
    $.ajax({
        url: '/api/webapitry',
        type: "get",
        data: { "id": 5, "name": "王五" },
        success: function (a) {
        	console.log(a);
        }
    });
后台代码
 public string Get()
 {
 	return "get1";
 }

public string Get(int id,string name)
{
	return "get2"+id+name;
}

post( 最麻烦,有好几种方式)

1,实体模型
前台代码
let obj = {
	name: "张三",
	pwd: "123456"
}
$.ajax({
	url: '/api/webapitry',
	type: "post",
	data: obj,
	success: function (a) {
		console.log(a);
	}
});
后台代码
public string Post(user user)//传入实体模型
{
	return "post1" + user.name;
}
//需要先定义个实体类
public class user { 
    public string name { get; set; }
    public string pwd { get; set; }
}
2,键值对(这玩意的 键(key)还必须为空,要不然接不住)
前台代码
 $.ajax({
     url: '/api/webapitry',
     type: "post",
     data: {"":"李四"},
     success: function (a) {
     	console.log(a);
     }
 });
后台代码
 public string Post([FromBody] string name)
 {
 	return "post2" + name;
 }
3,dynamic动态类型接收(查的好像是不能在跨域中使用,非跨域可以用,具体我没试)
前台代码
 $.ajax({
     url: '/api/webapitry',
     type: "post",
     contentType: 'application/json', //这个类型要加
     data: JSON.stringify({ 'name': "海伦", 'pwd': '12345' }),
     success: function (a) {
     	console.log(a);
     }
 });
后台代码
public string Post(dynamic obj)
{
	return "post4" + obj.name + obj.pwd;
}
4,JObject接收(后台需要处理接收的数据)
前台代码
$.ajax({
    url: '/api/webapitry',
    type: "post",
    data: { 'name': "海伦", 'pwd': '12345' },
    success: function (a) {
    	console.log(a);
    }
});
后台代码
需要引入以下这两个命名空间
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

public string Post(JObject jObject)
{
    //将jobject序列化为json字符串
    var jsonstr = JsonConvert.SerializeObject(jObject);
    //反序列化为动态json object
    var jsondata = JsonConvert.DeserializeObject<dynamic>(jsonstr);
    return "post5" + jsondata.name + jsondata.pwd;
}

Put

这个我就写了两种
1
前台代码
$.ajax({
    url: '/api/webapitry?id=5', //这个是url参数 id=5 可以自行更改
    type: "put",
    data: obj,   //这个数据是formdata    //obj在post的时候我付的有,不再重写
    success: function (a) {
    	console.log(a);
    }
});
后台代码
public string Put(int id,[FromBody]user user)
{
	return "put1" + id + user.name + user.pwd;
}
2
前台代码
 $.ajax({
     url: '/api/webapitry',
     type: "put",
     data: obj,
     success: function (a) {
     	console.log(a);
     }
 });
后台代码
 public string Put(user user)
 {
 	return "put2" + user.name + user.pwd;
 }

Delete

1,参数放到url请求路径里
前台代码
$.ajax({
    url: '/api/webapitry?id=8', //这里的id=8 自行更改
    type: "delete",
    success: function (a) {
    console.log(a);
    }
});
后台代码
  public string Delete(int id)
  {
  	return "delete1" + id;
  }
2,使用键值对传,动态类型接收,同样的,键必须为空
前台代码
$.ajax({
    url: '/api/webapitry',
    type: "delete",
    data: { '': 8 },
    success: function (a) {
    	console.log(a);
    }
});
后台代码
 public string Delete(dynamic id)
 {
 	return "delete2" + id;
 }
如果需要源代码,可以去我博客空间里下,写的有点乱,自行整理吧
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.NET Web API 是一种用于构建 RESTful Web 服务的框架。在 Web API 中,我们可以使用标准的 HTTP 方法(GET、POST、PUT、DELETE 等)来操作资源,通过 URL 参数和请求体传递数据。接下来,我将向您介绍如何在 .NET Web API 中接收参数。 首先,我们需要创建一个 Web API 控制器。在控制器中,我们可以定义多个 Action 方法,每个方法对应一个 HTTP 请求。 例如,我们创建一个名为 "ValuesController" 的控制器,并定义一个名为 "Get" 的 Action 方法,用于处理 HTTP GET 请求: ```csharp public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } } ``` 在上面的代码中,我们返回了一个包含两个字符串的数组作为响应结果。 现在,我们来看一下如何接收参数。假设我们想要实现一个查询指定 ID 的资源的功能,我们可以在控制器中添加一个名为 "GetById" 的 Action 方法,并使用 id 参数来指定资源的 ID: ```csharp public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string GetById(int id) { return "value" + id; } } ``` 在上面的代码中,我们使用 "int id" 参数来接收请求 URL 中的 ID 参数,并返回一个包含 "value" 和 ID 的字符串作为响应结果。 如果我们想要接收多个参数,可以在方法中添加多个参数: ```csharp public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string GetById(int id, string name) { return "Hello, " + name + "! Your ID is " + id; } } ``` 在上面的代码中,我们添加了一个名为 "name" 的字符串类型参数,用于接收请求 URL 中的 name 参数。 除了从 URL 中接收参数外,我们还可以从请求体中接收参数。在 HTTP POST 请求中,我们可以通过请求体来传递数据。在 Web API 中,我们可以使用 [FromBody] 属性来指定请求体中的参数。 例如,我们可以定义一个名为 "Create" 的 Action 方法,用于处理 HTTP POST 请求: ```csharp public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string GetById(int id) { return "value" + id; } // POST api/values public void Create([FromBody] string value) { // Do something with the value } } ``` 在上面的代码中,我们添加了一个名为 "value" 的字符串类型参数,并使用 [FromBody] 属性来指定它是从请求体中接收的参数。 最后,我们需要注意的是,如果我们需要接收复杂的对象类型参数,可以使用 [FromBody] 属性来指定对象的类型,并在方法中使用该类型的实例来接收参数。例如: ```csharp public class User { public int Id { get; set; } public string Name { get; set; } } public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string GetById(int id) { return "value" + id; } // POST api/values public void Create([FromBody] User user) { // Do something with the user object } } ``` 在上面的代码中,我们定义了一个名为 "User" 的类,并在 "Create" 方法中使用它来接收从请求体中传递的参数。通过这种方式,我们可以轻松地实现 Web API 中的参数接收功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值