【问题标题】:C# - How to send information to multiple [FromForm]?C# - 如何将信息发送到多个 [FromForm]?
【发布时间】:2021-07-14 19:04:42
【问题描述】:

我有一个这样的端点:

[HttpPost("DoWork")]
public async Task<ActionResult> DoWork([FromForm] string name, [FromForm] string uri) {
    ...
}

从另一端我如何打包和发送该数据,它看起来像这样吗?

public void MyMethod(string name, string uri) {
    Dictionary<string, string> packet = new Dictionary<string, string>();
    packet.Add("name", name);
    packet.Add("uri", uri);

    var stringContent = new StringContent(JsonConvert.SerializeObject(packet), UTF8Encoding.UTF8, "application/json");
}

【问题讨论】:

    标签: c# asp.net api http-post


    【解决方案1】:

    最好是创建一个视图模型

    public class ViewModel
    {
    public string Name {get; set;}
    public string Uri {get; set;}
    }
    

    和行动

    [HttpPost("DoWork")]
    public async Task<ActionResult> DoWork([FromBody] ViewModel viewModel)
    {
        ...
    }
    

    恕我直言,您创建内容的方式,您不需要 [FromForm],请尝试 [FromBody] 代替

    【讨论】:

      【解决方案2】:

      我通过使用 RestRequest 并在发送请求之前添加每个参数来完成它:

      RestClient rC = new RestClient(apiUrl);
      RestRequest rr = new RestRequest(Method.POST);
      rr.AddParameter("name", name);
      rr.AddParameter("uri", uri);
      RestResponse response = (RestResponse)await rC.ExecutePostAsync(rr);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-30
        • 2012-06-12
        • 2013-10-14
        • 1970-01-01
        • 1970-01-01
        • 2021-03-24
        • 2015-01-17
        相关资源
        最近更新 更多