.net-core - .net core web api 中的默认参数类型是什么?
问题描述
例如,我有一个这样的 API:
[HttpPost("device")]
public string Post(string uid, string name)
{
return "value";
}
我发布的这段代码可以工作吗?默认?
form-data
或x-www-form-urlencoded
或raw
?
我知道如果我想发布 json 数据,我必须将[FromBody]
and 参数添加到一个类中,对吗?
问题2:如何将json数据post到API,但不必使用参数的实例却可以使用参数?
string uid, string deviceId
解决方案
Q1:我新创建了一个asp.net core 3.1 api项目并创建了一个新HomeController
的,它在我身边工作
using Microsoft.AspNetCore.Mvc;
namespace WebApplication1.Controllers
{
public class HomeController : Controller
{
[HttpPost("device")]
public string Post(string uid, string name)
{
return "value";
}
}
}
Q2:我认为可能有一些方法可以实现您的目标,但恐怕需要更多配置,例如添加中间件。所以恐怕接收json数据的最简单方法是使用包含参数的实体。如果您不为该数据格式创建实体,也许您可以使用Dictionary
以下代码:
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace WebApplication1.Controllers
{
public class HomeController : Controller
{
[HttpPost("device")]
public string Post([FromBody] Dictionary<string, string> test)
{
string uid = test.GetValueOrDefault("uid");
string name = test.GetValueOrDefault("name");
return "value";
}
}
}
推荐阅读
- c# - 使用 OpenFileDialog 时,我看到 Assertion 在尝试关闭表单时失败,我该如何解决?
- docker - Kubernetes 从多个私有 Docker 注册表中提取
- angular - Ionic 4 - 从 Popover 传回数据而不关闭
- oracle-golden-gate - 转换 Oracle GoldenGate 的日期字段
- eclipse - 在 KOMMA 中设置 RDF 类实例
- javascript - 发送 post 请求时遇到 python 问题
- excel - 在excel中运行循环功能时遇到问题
- docker - 容器停止后,Docker compose 保持网络正常运行
- android - android权限问题:apk不被接受
- php - 为什么分类查询运算符在 Wordpress 中没有“LIKE”?