Blazor Server 发起HttpPost请求,但是多参数

打印 上一主题 下一主题

主题 878|帖子 878|积分 2634

一、介绍

今天突然想起之前工作上遇到的一个问题,在做Blazor 开发时后端给的一个接口请求方式是Post ,但是他需要携带多个参数,新建一个公共类又觉得麻烦,我就尝试着怎么在Post请求中携带多个参数,由于接触Asp .Net Core 的时间不够长,所以这些都不是太了解, 今天写下这篇文章做个记录,以免以后用到的时候忘记。如果有什么不对的地方,或者有更好的方法,大家可以在评论区发出来,大家一起学习。

二、代码实现

后台就写一个最简单的Post接口,参数暂且先填两个参数,同时这两个参数使用[FromForm]特性,表示这个数据是表单传过来的数据。
FromForm: 在Action方法传入参数后添加[FromForm]属性,参数将以表单【key:value对Array组】的形式提交。
  1.      [HttpPost]
  2.      public async Task<ActionResult<string>> PostMultipleParameters([FromForm] int age, [FromForm] string name)
  3.      {
  4.          var form = $"age:{age},name:{name}";
  5.          return Ok(form);
  6.      }
复制代码
同样,Blazor Server 也是写一个最简单的HttpPost请求,从后台的Swagger 可以看到,这个请求体是 multipart/form-data,所以我们在请求的时候也需要创建一个相对应的正文,这里我们用MultipartFormDataContent类型来作为我们请求的正文。
  1. @code {
  2.     protected override async Task OnInitializedAsync()
  3.     {
  4.         using (var httpClient = new HttpClient())
  5.         {
  6.             MultipartFormDataContent formDataContent = new();
  7.             formDataContent.Add(new StringContent("LinSr"), "name");
  8.             formDataContent.Add(new StringContent("80"), "age");
  9.             await httpClient.PostAsync("http://localhost:5001/api", formDataContent);
  10.         }
  11.     }
  12. }
复制代码
当Blazor Server 程序运行起来,OnInitializedAsync方法被调用时,后台收到的请求数据如下,证明我们从Blazor Server 发起的HttpPost请求后台已收到。



三、总结

上述是Blazor Server 发起HttpPost请求携带多个参数的一个简单例子,方法应该还有很多种,但我始终相信学习是一个循序渐进的过程,现在自身能力有限,先从简单的开始吧,如果大家还有更好的方法,也望大家不吝赐教,在评论区发出来,大家一起学习。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美丽的神话

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表