首页 文章详情

.net8带来的Complex Form Binding

DotNet NB | 6 2023-10-24 10:12 0 0 0
UniSMS (合一短信)

.net8 RC2发布了,针对API,带来了Complex Form绑定,上传文件这个标签,就是一个Complex表单,下面是单个文件上传的案例。

.cs文件如下:
using Microsoft.AspNetCore.Mvc;var builder = WebApplication.CreateBuilder(args);var app = builder.Build();app.UseStaticFiles();app.MapPost("/upload", ([FromForm] DocumentUpload document) =>{    return Results.Ok();}).DisableAntiforgery();app.Run();public class DocumentUpload{    public string Name { get; set; };    public string? Description { get; set; }    public IFormFile? Document { get; set; }}
html文件如下:
<!DOCTYPE html><html><head>    <title>文件上传表单</title></head><body>    <h2>上传文件</h2>    <form action="/upload" method="post" enctype="multipart/form-data">        <label for="name">名称:</label><input type="text" name="name" /><br><br>        <label for="description">描述:</label><textarea row="3" name="description"></textarea> <br><br>        <label for="file">文件:</label>        <input type="file" name="Document" id="file" accept=".jpg, .png, .pdf">        <br><br>        <input type="submit" name="submit" value="上传">    </form></body></html>
运行结果:

局部变量查看:

如果想上传多个图片,需要对实体类的文件字面类型修改成IFormFileCollection即可。

cs代码如下:
public class DocumentUpload{    public string Name { get; set; }    public string? Description { get; set; }    public IFormFileCollection? Documents { get; set; }}
运行结果如下:

局部变量查看:

虽然很小的功能,但带来的开发体验还是很好的,简化,直接,易用。


推荐阅读:
理解C#中的ValueTask
.NET 使用 ZXing.Net 生成二维码,并识别
使用 Foundatio 轻松构建 .NET 分布式应用
微服务必备,使用 .NET 实现分布式锁
推荐一个开源的 .NET 服务监控项目
C#/.NET/.NET Core优秀项目和框架2023年9月简报

点击下方卡片关注DotNet NB

一起交流学习

▲ 点击上方卡片关注DotNet NB,一起交流学习

请在公众号后台

回复 【路线图】获取.NET 2023开发者路线图
回复 【原创内容】获取公众号原创内容
回复 【峰会视频】获取.NET Conf开发者大会视频
回复 【个人简介】获取作者个人简介
回复 【年终总结】获取作者年终总结
回复 加群加入DotNet NB 交流学习群

长按识别下方二维码,或点击阅读原文。和我一起,交流学习,分享心得。



good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter