.NET 11 - 尝试一下Blazor中的新特性SupplyParameterFromTempData

1. 简单介绍

时光匆匆,.NET Conf 2026大会将会在2026年11月份举办(11/10-11/13),到时微软将会发布.NET11,这是一个STS版本(Standard Term Support), 微软提供两年支持。当前.NET 11已经处于RC3版本(Release Candidate 3),很多新特性已经被发布出来了。

.NET11的新特性有很多,这边只尝试一下Blazor的SupplyParameterFromTempData特性,Blazor中用Supply起头的Attribute已经有好几个,之前也写过两篇文章,

Blazor - SupplyParameterFromQuery-CSDN博客

Blazor - SupplyParameterFromForm-CSDN博客

.NET11中,微软增加了两个attribute,分别是SupplyParameterFromTempData和SupplyParameterFromSession。

2. 准备阶段

这边打算安装一下Visual Studio Insiders。有了Visual Studio Insiders就可以体验.NET 11新特性,

2.1 安装Visual Studio Insiders

可以点击VS Insiders 链接进行下载安装。安装成功之后,Program and Feature的图片如下,

2.2 安装.NET 11 SDK

可以直接从.NET官网,根据自己的操作系统选择安装的版本即可,

3. 创建Blazor应用程序

SupplyParameterFromTempData feature 只适用于static server-side rendering(static SSR),对Interactive类型的渲染模式不起作用。

  1. 创建Blazor应用程序时候,在Interactive render mode下拉框中选择None,
  1. 创建一个页面如下图所示,同时配置一下MainLayout.razor中的导航,

4. 测试一下

  1. 启动项目,在浏览器中打开创建的Blazor页面,
  1. 点击Submit按钮,虽然页面进行导航同时强制加载了新页面,发现Message的值还是出现了,这说明值确实存放到了TempData中,
  1. 刷新几次页面,Message的值还是正常出现,这说明在这个场景中值会保持住,不是一次性消费的。
  1. 使用不同类型的浏览器打开页面,发现值没有出现,

5. 其他

如果不使用SupplyParameterFromTempData attribute,则在Blazor应用程序中,也可以直接使用CacadingParameter ITempData。ITempData支持如下4个方法,

Get:获取与指定键关联的值,并计划要删除的数据。

Peek:返回与指定键关联的值,而不标记要删除的数据。

Keep:标记字典中的所有键以供保留。 值将在下一个请求中可用。

Keep(string): 标识一个指定的键(字符串)以进行保留。 该值在下一个请求中可用。

5.1 准备应用程序

下面的只尝试一下ITempData的Get方法,

5.2 运行一下

运行一下Blazor应用程序,刚开始的时候,页面中message的值是"No message",

点击一下Submit按钮,虽然页面经过了跳转,最后能够显示Tempdata中的值"Form submitted successfully",如下图所示,

直接刷新一下页面,发现页面的显示的值变回了"No message",Tempdata中的值没有留下,

note, 如果使用ITempData的Keep或Peek方法,则刷新页面,Tempdata的值还会显示在界面中。

6.总结

本文简单尝试了一下SupplyParameterFromTempData和ITempData的功能以及使用方式。当前.NET11已经进入Release Candidate3阶段,还需继续学习一下。

本文如果哪里有错误,麻烦告之,谢谢谢谢!

相关推荐
1-1=01 小时前
C# 中 Lambda、Linq 与 Expression
c#·linq
zhanghaha13142 小时前
C# 系列教程_7 判断语句(分支)保姆级精讲
开发语言·c#
zhanghaha13143 小时前
C# 系列教程_8 循环语句 保姆级精讲(面向新手)
开发语言·c#
rockey62712 小时前
AScript之LINQ扩展
c#·.net·script·动态脚本
1-1=017 小时前
C# 委托与事件
开发语言·c#
学以智用19 小时前
runtimeconfig.json + appsettings 完整详解(.NET Core/.NET5+,对比 machine.config)
.net
Liangwei Lin1 天前
Exchange Server 2019 部署手册
microsoft
qq_410194291 天前
.NET 性能优化:先找瓶颈,再谈技巧
性能优化·.net