首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在get api中传递多个数组而不创建类对象c#

如何在get api中传递多个数组而不创建类对象c#
EN

Stack Overflow用户
提问于 2020-05-14 19:53:21
回答 2查看 482关注 0票数 0

我试图在c#中将多个数组从一个项目传递到另一个api项目。

我打电话给项目的方法是-

代码语言:javascript
运行
AI代码解释
复制
public DataTable GetDataTableForDocument(string ListType, string TableName, string[] DataColumn, string[] DataParam, string[] RequiredColumn)
    {
        DataTable lstTable = new DataTable();
        var baseAddress = "Base";
        using (HttpClient client = LocalUtility.InitializeHttpClient(baseAddress))
        {
            HttpResponseMessage response = client.GetAsync(baseAddress + "/GetDataTableForDocument?ListType=" + ListType + "&TableName=" + TableName + "&DataColumn=" + DataColumn + "&DataParam=" + DataParam + "&RequiredColumn=" + RequiredColumn).Result;
            if (response.IsSuccessStatusCode)
            {
                var data = response.Content.ReadAsStringAsync().Result;
                lstTable = JsonConvert.DeserializeObject<DataTable>(data);
            }
        }
        return lstTable;
    }

这是我的api项目方法-

代码语言:javascript
运行
AI代码解释
复制
[HttpGet]
    [Route("api/Base/GetDataTableForDocument")]
    public IHttpActionResult GetDataTableForDocument(string ListType, string TableName, string[] DataColumn, string[] DataParam, string[] RequiredColumn)
    {
        return Ok(_repository.GetDataTableForDocument(ListType, TableName, DataColumn, DataParam, RequiredColumn));
    }

我的错误是500。此代码导致内部服务器错误。这是为Get Request - http://localhost:60021/api/Base/GetDataTableForDocument?ListType=Distinct&TableName=PurchaseRequest&DataColumn=System.String[]&DataParam=System.String[]&RequiredColumn=System.String[]制作的url。

我的请求电话是-

可以将这些数组作为参数吗?如果是,怎么做?如果没有,为什么?另外,我不想创建一个类并传递它的对象。我搜索互联网已经有一段时间了,但是没有任何相关的东西出现。

EN

回答 2

Stack Overflow用户

发布于 2020-05-14 21:44:21

在客户机中,您似乎要将ListType作为查询参数传递,但在控制器操作中,您已经将其标记为“解析[FromBody]”。首先,从操作中删除该属性。

这只是个开始。对于作为字符串数组的参数,一个常见的解决方案是用string.Join(",",DataColumn) (或另一个字符,如果您的字符串包含逗号)构造一个逗号分隔的字符串,并且在控制器上可以使用DataColumn.Split(",")再次将它们分开。

您是否尝试过调试API并一步一步地检查引发错误的位置?

顺便说一下,505不是Internal Server Error。我怀疑是505 (Version not supported)。此外,在您的.Result调用中避免使用HttpClient。尝试将此方法声明为async,并正确使用.GetAsync(),并在其前面加上await关键字。

票数 0
EN

Stack Overflow用户

发布于 2020-05-14 20:08:08

一般来说,这是可能的,但这是一个糟糕的想法,类似于:

clickMe

你可以通过jsonApi

但总的来说,我不得不说,这是一个糟糕的想法。DTO模式适合于大多数RestAPIs,从长远来看具有巨大的优势:易于扩展,更干净(=更好地阅读和理解),更聪明的错误处理,。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61811454

复制
相关文章
C# 直接创建多个类和使用反射创建类的性能
虽然一开始就知道了反射的性能比较差,但是究竟有多差,在创建对象的时候的差异有多少?
林德熙
2019/03/13
2.4K0
C# 直接创建多个类和使用反射创建类的性能
Java中创建对象数组[通俗易懂]
1.对象数组的概念: 如果一个数组中的元素是对象类型,则称该数组为对象数组。当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。 2.对象数组的定义和使用: 对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。 3.对象数组的实例化: 类名[ ] 对象数组名 = new 类名[ 数组大小] 以创建Student类的对象数组为例
全栈程序员站长
2022/09/13
3.3K0
如何在js中创建对象
七夕临近了,没有对象的来创建一个吧 使用对象字面量: const o = { name: "zehan", greeting() { return `Hi, 我是${this.name}`; } }; o.greeting(); // "Hi, zehan" 使用构造函数: function Person(name) { this.name = name; } Person.prototype.greeting = function () { return `Hi, 我是
ZEHAN
2020/09/23
7.7K0
C#数组引用传递 怎样才能创建原数组的拷贝
C#数组是引用传递,其长度一定设定之后就是固定的了,数组索引从0开始计数,本文所有代码都是在控制台项目中演示的
zls365
2020/08/19
1.8K0
C#数组引用传递 怎样才能创建原数组的拷贝
创建自定义类的对象数组
CN_Simo
2017/12/26
2.3K0
创建自定义类的对象数组
C#报错——传递数组对象报错“未将对象引用设置到对象的实例”
从字面上理解这句话为,传递的数组对象(指的是数组aaa),没有将对象引用(指定的bbb,实际也是aaa本身,因为他们是同一片地址)设置到对象的实例(指的是没有实例化数组)
vv彭
2021/03/07
2.2K0
如何在 wxPython 中创建多个工具栏
作为C++库wxWidgets的包装器,wxPython允许Python开发人员利用这个成熟且经过实战测试的框架的强大功能。它具有各种平台的本机外观和感觉,包括Windows,macOS和Linux。使用 wxPython,您可以使用各种小部件(例如按钮、文本控件,当然还有工具栏)设计具有视觉吸引力且响应迅速的桌面应用程序。
很酷的站长
2023/08/11
3250
如何在 wxPython 中创建多个工具栏
如何在Linux中创建文件?多个文件创建操作命令。
如果文件file1.txt不存在,则上面的命令将创建该文件,否则,它将更改其时间戳。
用户5005176
2021/08/10
39.4K0
java对象数组 创建对象数组,初始化对象数组
对象数组的概念: 如果一个数组中的元素是对象类型,则称该数组为对象数组。 当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。 对象数组的定义和使用: 对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。 对象数组的声明形式是: 类名 对象数组名 [ ]; 为对象数组分配内存空间: 对象数组名=new 类名[数组长度];//注意 :此处不是构造方法了 可以将对象数组的声明和创建用一条语句来完成。例如:定义一个学生类对象数组,可以用下面的语句定义:Student stu[ ]=new Student[30]; stu [ ]是对象数组名,它所表示的数组一共有30个元素,每一个元素都是Student类的对象名,还没有实例化,所以还必须为每一个元素实例化。比如如下的过程: for(int i=0;i<stu.length;i++) stu[i]=new Student(); 实例化以后就可以使用每一个元素对象。 设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息
用户7886150
2021/02/01
4K0
如何在C中传递二维数组作为参数?
在C语言中,有很多方法可以将2d数组作为参数传递。在下面的部分中,我描述了将2d数组作为参数传递给函数的几种方法。
用户4645519
2020/09/08
3.1K0
如何在java中创建不可变类?
今天我们将学习如何在java中创建不变的类。不可变对象是在初始化之后状态不变的实例。例如,String是一个不可变类,一旦实例化,它的值不会改变。
三产
2021/01/12
1.9K0
如何在 Django 中创建抽象模型类?
Django 中的抽象模型类是一个模型,它用作其他模型继承的模板,而不是一个旨在创建或保存到数据库的模型。在应用程序中,可以使用抽象模型定义多个模型共享的相似字段和行为。使用 Django,您可以定义一个派生自 Django.db.models 的模型类,以建立一个抽象模型类。
很酷的站长
2023/08/11
2710
如何在 Django 中创建抽象模型类?
ajax与后台之间传递多个对象方法
如果是需要通过ajax传递数组给后台,可以使用JSON.stringify()函数将JS数组转为json字符串,然后后台通过@RequestBody注解修饰,将前台传来的json字符串转为对应的参数类型。 前台
六月丶
2022/12/26
3.1K0
java对象组声明_如何在Java中声明对象数组?
可以创建对象类数组,该数组可以接受任何类型的对象。在此类数组上运行期间,可以使用instanceof运算符。
全栈程序员站长
2022/08/30
3.8K0
详解C# 利用反射根据类名创建类的实例对象
“反射”其实就是利用程序集的元数据信息。反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间。
zls365
2021/01/13
3.1K0
C#之 对象数组
对象数组就是数组里的每个元素都是类的对象,赋值时先定义对象,然后将对象直接赋给数组就行了。 万物皆可对象,举个例子:一台电脑。我们就可以把电脑看成一个对象。 数组,就是变量中元素的集合,详见本人之前写的: C#之 数组的理解和使用
全栈程序员站长
2022/09/14
4390
JS 函数中的 arguments 类数组对象
众所周知,js 是一门非常灵活的语言。当我们在 js 中调用一个函数时,经常会给函数传递一些参数,js 把调用函数时传入的全部实参存储到一个叫做 arguments 的类数组对象里面
很酷的站长
2022/12/04
5.5K0
JS 函数中的 arguments 类数组对象
java对象数组 创建对象数组,初始化对象数组「建议收藏」
对象数组的概念: 如果一个数组中的元素是对象类型,则称该数组为对象数组。 当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。 对象数组的定义和使用: 对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。 对象数组的声明形式是: 类名 对象数组名 [ ]; 为对象数组分配内存空间: 对象数组名=new 类名[数组长度];//注意 :此处不是构造方法了 可以将对象数组的声明和创建用一条语句来完成。例如:定义一个学生类对象数组,可以用下面的语句定义:Student stu[ ]=new Student[30]; stu [ ]是对象数组名,它所表示的数组一共有30个元素,每一个元素都是Student类的对象名,还没有实例化,所以还必须为每一个元素实例化。比如如下的过程: for(int i=0;i<stu.length;i++) stu[i]=new Student(); 实例化以后就可以使用每一个元素对象。 设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息
全栈程序员站长
2022/08/31
2.3K0
如何在 Python 中创建静态类数据和静态类方法?
在这里,为静态类数据定义一个类属性。如果要为属性分配新值,请在赋值中显式使用类名 -
很酷的站长
2023/02/25
3.6K0
如何在 Python 中创建静态类数据和静态类方法?
将数组中多个对象的同名属性值取出合并成新数组
业务中需求的方法,接口返回一个数组,里面包含了大量的对象,具有同名的属性名,比较常见。但是需要将其中参数为name的属性值全部取出,合并成数组。
子舒
2023/08/23
5880

相似问题

使用多个类而不创建每个类的对象

11

如何在python中不传递参数而创建对象?

12

如何在C#中创建类对象的数组

33

如何在ROR中创建json对象而不创建多维数组

21

C#类/对象传递(对象数组)

34
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文