在 ASP.NET Core 3.0 的 Blazor 中,使用 HTML 帮助程序 (Html.RenderComponentAsync) 将组件呈现到页面和视图中。 在 ASP.NET Core 3.1 中,使用新的组件标记帮助程序从页面或视图呈现组件:download:.NET Core开发实战
CSHTML
复制
HTML 帮助程序在 ASP.NET Core 3.1 仍受支持,但建议使用组件标记帮助程序。
Blazor Server 应用现可在初始呈现期间将参数传递给顶级组件。 之前,你只能将参数传递给具有 RenderMode.Static 的顶级组件。 在此版本中,RenderMode.Server 和 RenderMode.ServerPrerendered 均受支持。 任何指定的参数值均序列化为 JSON,并包含在初始响应中。
例如,通过增量 (IncrementAmount) 预呈现一个 Counter 组件:
CSHTML
复制
<component type="typeof(Counter)" render-mode="ServerPrerendered"
param-IncrementAmount="10" />
有关详细信息,请参阅将组件集成到 Razor Pages 和 MVC 应用。
HTTP.sys 中对共享队列的支持
HTTP.sys 支持创建匿名请求队列。 在 ASP.NET Core 3.1 中,我们添加了创建 HTTP.sys 请求队列或附加到现有 HTTP.sys 请求队列的功能。 通过创建名为 HTTP.sys 的请求队列或附加到现有 HTTP.sys 请求队列,可实现拥有该队列的 HTTP.sys 控制器进程独立于侦听器进程这一场景。 利用这种独立性,可在侦听器进程重启期间保留现有的连接和排队的请求:
C#
复制
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
// ...
webBuilder.UseHttpSys(options =>
{
options.RequestQueueName = "MyExistingQueue";
options.RequestQueueMode = RequestQueueMode.CreateOrAttach;
});
});
SameSite cookie 的中断性变更
SameSite cookie 的行为已更改,可反映出即将发生的浏览器更改。 这可能会影响 AzureAd、OpenIdConnect 或 WsFederation 等身份验证场景。 有关详细信息,请参阅 使用 cookie ASP.NET Core 中的 SameSite。
在 Blazor 应用中阻止事件的默认操作
使用 @on{EVENT}:preventDefault 指令属性可阻止事件的默认操作。 在下例中,阻止在文本框中显示键字符的默认操作:
razor
复制
<input value="@_count" @οnkeypress=“KeyHandler” @onkeypress:preventDefault />
有关详细信息,请参阅阻止默认操作。
在 Blazor 应用中停止事件传播
使用 @on{EVENT}:stopPropagation 指令属性来停止事件传播。 在下例中,选中复选框可阻止子
razor
复制
<input @bind="_stopPropagation" type="checkbox" />
<div @onclick="OnSelectParentDiv">
<div @onclick="OnSelectChildDiv" @onclick:stopPropagation="_stopPropagation">
...
</div>
</div>
@code {
private bool _stopPropagation = false;
}
有关详细信息,请参阅停止事件传播。