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

HttpPost,Server ,参数 · 浏览次数 : 34

小编点评

**代码实现** ```csharp [HttpPost] public async Task PostMultipleParameters([FromForm] int age, [FromForm] string name) { var form = $"age:{age},name:{name}"; return Ok(form); } ``` **说明** * `[FromForm]`特性用于标记参数是表单数据。 * `[FromForm]`特性中的`name`属性指定参数的名称。 * `[HttpPost]`标记方法是处理POST请求的 handler。 * `MultipartFormDataContent`用于创建包含多个表单数据参数的POST请求正文。 * `Add()`方法用于添加表单参数到`formDataContent`中。 * `await`语法用于等待请求完成。 **总结** 该代码展示了如何使用 `[FromForm]`和 `MultipartFormDataContent`在 POST 请求中传递多个参数。

正文

一、介绍

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

二、代码实现

后台就写一个最简单的Post接口,参数暂且先填两个参数,同时这两个参数使用[FromForm]特性,表示这个数据是表单传过来的数据。

FromForm: 在Action方法传入参数后添加[FromForm]属性,参数将以表单【key:value对Array组】的形式提交。

     [HttpPost]
     public async Task<ActionResult<string>> PostMultipleParameters([FromForm] int age, [FromForm] string name)
     {
         var form = $"age:{age},name:{name}";
         return Ok(form);

     }

同样,Blazor Server 也是写一个最简单的HttpPost请求,从后台的Swagger 可以看到,这个请求体是 multipart/form-data,所以我们在请求的时候也需要创建一个相对应的正文,这里我们用MultipartFormDataContent类型来作为我们请求的正文。

@code {
    protected override async Task OnInitializedAsync()
    {
        using (var httpClient = new HttpClient())
        {
            MultipartFormDataContent formDataContent = new();
            formDataContent.Add(new StringContent("LinSr"), "name");
            formDataContent.Add(new StringContent("80"), "age");
            await httpClient.PostAsync("http://localhost:5001/api", formDataContent);
        }
    }
}

当Blazor Server 程序运行起来,OnInitializedAsync方法被调用时,后台收到的请求数据如下,证明我们从Blazor Server 发起的HttpPost请求后台已收到。

三、总结

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

与Blazor Server 发起HttpPost请求,但是多参数相似的内容:

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

一、介绍 今天突然想起之前工作上遇到的一个问题,在做Blazor 开发时后端给的一个接口请求方式是Post ,但是他需要携带多个参数,新建一个公共类又觉得麻烦,我就尝试着怎么在Post请求中携带多个参数,由于接触Asp .Net Core 的时间不够长,所以这些都不是太了解, 今天写下这篇文章做个记

关于Unity 如何与Blazor Server结合

关于Unity 如何与Blazor Server结合 一、介绍 最近工作中有`Unity`与`Blazor Server`结合的需求,在网上找了一圈,发现这方面的资料比较少,特此写下这篇记录一下自己的实现过程,希望可以帮到有需要的朋友。(下方多图预警) OS Version : windows 11

【ASP.NET Core】修改Blazor.Server的Hub地址后引发的问题

Blazor Server,即运行在服务器上的 Blazor 应用程序,它的优点是应用程序在首次运行时,客户端不需要下载运行时。但它的代码是在服务器上执行的,然后通过 SignalR 通信来更新客户端的 UI,所以它要求必须建立 Web Socket 连接。 用于 Blazor 应用的 Signal

Blazor模式讲解

Blazor的三种模式 Blazor Server: Blazor Server在 ASP.NET Core 应用中支持在服务器上托管 Razor 组件。 可通过 SignalR 连接处理 UI 更新。 运行时停留在服务器上并处理: 执行应用的 C# 代码。 将 UI 事件从浏览器发送到服务器。 将

Blazor嵌套传递

实现创建一个Blazor Server空的应用程序 创建一个Tab.razor 并且添加以下代码 @Title @code { [CascadingParameter] public string? Title { get; set; } } 修改Index.razor组件

如何取消Blazor Server烦人的重新连接?

# 如何取消Blazor Server烦人的重新连接? 相信很多Blazor的用户在开发内部系统上基本上都选择速度更快,加载更快的`Blazor Server`模式。 但是`Blazor Server`由于是`SignalR`实现,所以在访问的时候会建立`WebSocket`通道,用于`js`交互和

快速使用ChatGpt Web Server

快速使用ChatGpt Web Server ChatGpt Web Server是使用Blazor Server模式部署的一个服务,所有的逻辑和代码执行都会在服务器执行,然后通过SignalR传输到前端渲染。通过这样模式,我们部署ChatGpt Web Server只需要新加坡服务器,不需要在搭建

实现简单的`Blazor`低代码

本篇博客只实现基本的低代码,比如新增组件,动态修改组件参数 创建项目 首先创建一个空的Blazor Server,并且命名LowCode.Web 实现我们还需要引用一个Blazor组件库,由于作者用Masa Blazor比较多所以使用Masa Blazor 安装Masa Blazor 将Masa B

搞了个Blazor工具站,域名一次性买了10年!

大家好,我是沙漠尽头的狼。 在 [Dotnet9](https://dotnet9.com) 上线在线小工具和小游戏后,服务器的压力感觉挺大的,打开25个页面,内存占用170MB左右,CPU保持在60~70%,看来Server真不适合搞这类交互较多的程序(服务器配置:2核4G内存),所以站长加急上线

.NET 入门到高级路线

.NET Web入门到高级路线 C# 基础语法 .NET Core 基础知识 ASP.NET Core基础知识概述 Blazor ASP.NET Core 官方文档 ORM FreeSql EntityFrameworkCore Dapper SqlSugar 关系型数据库 SQL Server M