在Azure Fucntion 2.x中使用C#对HTTP请求的函数参数进行模型绑定

问题描述 投票:1回答:1

下面是通过C#和visual studio的Azure功能。问题是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"]                
        };
       ...

      }
    }

是否可以使用模型绑定自动填充RequestDto与ASP.NET CORE 2.x如下所示?

[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; }
}
c# azure asp.net-core azure-functions
1个回答
0
投票

我认为您正在寻找的是自定义绑定或Microsoft调用:Azure Functions / WebJobs绑定扩展。如何做到这一点在这里解释:https://github.com/Azure/WebJobsExtensionSamples

© www.soinside.com 2019 - 2024. All rights reserved.