繁体   English   中英

如何为将字符串数组作为参数的 .Net Core 3.1 webapi 服务调用定义路由?

[英]How do I define the Route for a .Net Core 3.1 webapi service call which takes an array of strings as a parameter?

我正在创建一个.NetCore 3.1 Web API 服务。

我很难确定服务调用的正确路由定义。

考虑以下定义:

[HttpPut]
[Route("{paramA}/{paramB}")]
public void Sample(string paramA, string[] paramB)
{
}

传递字符串数组时定义路由参数的正确方法是什么? 我应该改用 List 吗?

我建议您可以通过查询字符串传递数组列表:

[HttpPut]   
[Route("{paramA}")]
public void Sample([FromRoute]string paramA, [FromQuery]string[] paramB)
{
}

发送请求,例如: https://localhost:5001/xxxxxx/aaa?paramB=ss&paramB=sd

结果: 在此处输入图像描述

我建议您在 HttpPost 的请求正文中传递 Array 字符串,这是您没有字符限制的请求部分,当在查询的 url 中您将有类似 300 个字符的限制。

例如:

HttpPost]
[Route("MyArrayStrings")]
public async string MyArrayStrings([FromBody] string content)
{
    return content;
}

然后,您可以在发送请求时使用 Newtonsoft 对数据进行序列化,并在收到时进行反序列化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM