c# – 使用web api,你将如何创建一个带有id列表的方法?

c# – 使用web api,你将如何创建一个带有id列表的方法?,第1张

概述我想有一个方法(api动作方法),看起来像: public List<User> GetUserList(int userId, string commaSeperatedListOfIds){...} 根据我的理解,web api控制器将自动转换json请求并映射参数,因此最好将自定义类创建为如下参数: public class UserListRequest{ public 我想有一个方法(API动作方法),看起来像:

public List<User> GetUserList(int userID,string commaSeperatedlistofIDs){...}

根据我的理解,web API控制器将自动转换Json请求并映射参数,因此最好将自定义类创建为如下参数:

public class UserListRequest{    public int UserID {get;set;}    public string CsvlistofIDs {get;set;}}
解决方法

From what I understand,a web API controller will automatically
convert the Json request and map the parameters,so is it best to
create a custom class

是,如果随请求一起传递的数据可以映射到对象,则Web API会将JsON或XML对象转换为类对象.

如果您希望您的Json数据进入您的方法的对象内,那么首先定义一个将保存您的Json数据的类.

public class UserListRequest{    public int UserID { get; set; }    public string CsvlistofIDs { get; set; }}

稍后修改您的方法签名以接收该类的对象:

[httpPost]public List<User> GetUserList(UserListRequest obj){    List<User> List = new List<User>();    List.Add(new User { ID = obj.UserID });    List.Add(new User { ID = obj.UserID + 1 }); //something    return List;}

请记住使用[httpPost]属性.还应该有一个post方法,你可以注释掉控制器中已经提供的Post方法. (如果你想在你的控制器中有多个post方法,那么请看this question)

您可以通过jquery或fiddler(或任何您想要的方式)发送请求.我用fiddler测试了它.你可能会看到How to debug a Web API through Fiddler

设置好控制器后,然后构建项目并以调试模式启动它.启动fiddler并转到作曲家.

将控制器的URI(来自IE / brower)粘贴到地址栏中,然后选择POST作为http方法.
你的URI就像:

http://localhost:60291/API/values/GetUserList

在fiddler Composer中 – >请求标头指定

Content-Type: application/Json

在fiddler Composer中 – >请求正文,指定您的JsON

{   "UserID": 1,"CsvlistofIDs": "2,3,4,5"}

(您也可以使用http://json2csharp.com/从Json创建C#模板类)

在控制器中的方法上放置调试点,然后在fiddler Hit Execute中,您将看到Visual Studio中的DeBUG点是Hit,并且数据填充在参数中.

稍后您可以返回List< User>,您将在fiddler中看到响应.

[{"ID":1},{"ID":2}]

暂时我创建了一个类User:

public class User{    public int ID { get; set; }}

希望这可以帮助.

总结

以上是内存溢出为你收集整理的c# – 使用web api,你将如何创建一个带有id列表的方法?全部内容,希望文章能够帮你解决c# – 使用web api,你将如何创建一个带有id列表的方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230118.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存