c# - 在 Azure Function 2.x 中使用 C# 对 HTTP 请求的函数参数进行模型绑定(bind)

标签 c# azure asp.net-core azure-functions

下面是通过 C# 和 Visual Studio 实现的 Azure Functions。问题是 req.Form 用于创建 RequestDto 对象,如下所示:

 public class Function1
{   
    [FunctionName("Token")]
    public async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
    HttpRequest req)
    {

        var reqDto = new RequestDto
        {
            UserName = req.Form["username"],
            Password = req.Form["password"],
            ClientId = req.Form["client_id"],
            ClientSecret = req.Form["client_secret"]                
        };
       ...

      }
    }

是否可以使用模型绑定(bind)来通过 ASP.NET CORE 2.x 自动填充 RequestDto,如下所示?

[Route("api/[controller]")]
[ApiController]
public class ConnectController : Controller
{
    [HttpPost("token")]
    [Consumes("application/x-www-form-urlencoded")]
    public async Task<IActionResult> Token([FromForm]RequestDto request)
    {
         ...
    }
 }

  public class RequestDto
  {
    [FromForm(Name="client_id")]
    public string ClientId { get; set; }

    [FromForm(Name = "client_secret")]
    public string ClientSecret { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
}

最佳答案

我认为您正在寻找的是自定义绑定(bind)或 Microsoft 所称的:Azure Functions/WebJobs 绑定(bind)扩展。这里解释了如何执行此操作: https://github.com/Azure/WebJobsExtensionSamples

关于c# - 在 Azure Function 2.x 中使用 C# 对 HTTP 请求的函数参数进行模型绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55033813/

相关文章:

razor - ASP.NET 核心页面 : Partials

c# - 获取字典中的第一个匹配项 LINQ

c# - SmtpClient.Send 将发送消息并超时

python - 如何使用Python正确编码/解码Excel文件?

azure - azure和项目版本升级后无法发布到azure

c# - EF Core 预加载返回 null

c# - 正则表达式不会覆盖旧值

c# - 获取microsoft azure表存储中所有表的列表

azure - Azure 表存储中的日期范围查询

asp.net-core - 如何统计 ASP.NET Core 2.0 中具有特定角色的所有用户