首页 > 解决方案 > .net core web api 中的默认参数类型是什么?

问题描述

例如,我有一个这样的 API:

[HttpPost("device")]
public string Post(string uid, string name)
{
    return "value";
}

我发布的这段代码可以工作吗?默认?

form-datax-www-form-urlencodedraw?

我知道如果我想发布 json 数据,我必须将[FromBody]and 参数添加到一个类中,对吗?

问题2:如何将json数据post到API,但不必使用参数的实例却可以使用参数?

string uid, string deviceId

标签: .net-coreasp.net-core-webapi

解决方案


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";
        }
    }
}

在此处输入图像描述


推荐阅读