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类型的渲染模式不起作用。
- 创建Blazor应用程序时候,在Interactive render mode下拉框中选择None,

- 创建一个页面如下图所示,同时配置一下MainLayout.razor中的导航,

4. 测试一下
- 启动项目,在浏览器中打开创建的Blazor页面,

- 点击Submit按钮,虽然页面进行导航同时强制加载了新页面,发现Message的值还是出现了,这说明值确实存放到了TempData中,

- 刷新几次页面,Message的值还是正常出现,这说明在这个场景中值会保持住,不是一次性消费的。

- 使用不同类型的浏览器打开页面,发现值没有出现,

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阶段,还需继续学习一下。
本文如果哪里有错误,麻烦告之,谢谢谢谢!