Blazor是一个Web框架,允许开发人员在.NET中编写客户端代码。它是ASP.NET Core的一部分,称为“Razor Components”。
有件事让我很困惑,我在 .NET 6 上开发了一个 Blazor 应用程序,它在本地和生产环境中都能完美运行。目前它正在 Shopify 之外使用,但是,我...
如何在 Blazor 中创建 `AsChild` 或 `Slot`
我一直在寻找这个问题的答案。我想要的只是能够在 Blazor 中重新创建 Radix 的槽组件/asChild 模式。 例如 ... 我长期以来一直在寻找这个问题的答案。我想要的只是能够在 Blazor 中重新创建 Radix 的插槽组件/asChild 模式。 例如 <Button AsChild> <a href="/contact">Contact</a> </Button> 感谢@DanielD 让我走上正确的轨道。 我创建了一个抽象类(您不需要需要执行此操作,您只需将这些属性添加到您想要具有此功能的任何组件即可)。 public abstract class Slot : ComponentBase { [Parameter] public required RenderFragment<Dictionary<string, object>> ChildContent { get; set; } [Parameter] public bool AsChild { get; set; } } 按钮.razor.cs 指定您想要绘制的属性。 public partial class Button : Slot { private static Dictionary<string, object> _attributes => new() { { "onclick", () => Console.WriteLine("Button was clicked!") } }; } 按钮.剃须刀 为默认组件创建标记(当未使用 AsChild 时)。 @inherits Slot @if (AsChild) { @ChildContent(_attributes) } else { <button type="button" @attributes="_attributes"> @ChildContent(_attributes) </button> } 现在您可以在任何您喜欢的地方使用以下内容。 AsChild的用法: <Button AsChild> <a href="#" @attributes="context">Click me!</a> </Button> 不使用AsChild的用法: <Button> Click me! </Button>
如何在 Blazor 8 静态服务器渲染中设置本地化。 我是 Blazor 新手,想要在 Blazor 静态服务器渲染中制作应用程序,但在 Web 上只有交互式服务器的代码或...
Azure DevOps 发布在 .NET 9 上慢了 20 倍
我在 AzureDevops 上为 Blazor 解决方案创建了一个构建管道。构建代理正在我的服务器上运行。大约一个月前,我将所有项目更新到 .NET 9 并运行了构建。我们的构建时间...
Azure DevOps 发布在 .NET 9 上降低了 20 倍
我在 AzureDevops 上为 Blazor 解决方案创建了一个构建管道。构建代理正在我的服务器上运行。大约一个月前,我将所有项目更新到 .NET 9 并运行了构建。我们的构建时间...
是否有一种简单的方法可以在 .NET8 Blazor 中对嵌套对象进行表单验证?
我查看了以下解决方案,但 NuGet 包 Microsoft.AspNetCore.Components.DataAnnotations.Validation 已弃用。 两个嵌套对象之间的 Blazor 复杂验证 谢谢!
在 Blazor WebApp 中将身份验证状态从预渲染模式转移到交互式渲染模式
在 Blazor 9 中,AddAuthenticationStateSerialization() 和 AddAuthenticationStateDeserialization() 似乎仅在服务器项目中使用 ASP.NET Core Identity 时才起作用(如在 Visual Studio 中
我想在我的 Blazor WASM 应用程序中获取客户端计算机中的时间(如 Windows 11 的任务栏中显示的那样),这看起来应该很简单。 不过,我有时间...
我正在尝试在 Blazor 中渲染自定义单选按钮,仅向组件添加默认的 css 类。 所以我想我可以扩展 InputRadio 组件并修改
将自定义样式应用于 FluentUI Accordion 组件 (Blazor .NET 8)
我正在努力弄清楚如何将自定义样式应用于 FluentUI Accordion 的元素。 例如,我想更改手风琴“标题”元素的背景颜色...
如何通过 Blazor 组件的实例执行其状态更改。错误 - 渲染句柄尚未分配
我试图通过组件的实例更改组件的标志,但收到错误,因为渲染句柄尚未分配。 我有一个名为 PopMessage.razor 的组件 @if(isDisplay) { 我试图通过组件的实例更改组件的标志,但收到错误为 The render handle is not yet assigned。 我有一个名为 PopMessage.razor 的组件 @if (isDisplay) { <div> <span>Message</span> </div> } @code{ private bool isDisplay = false; public void PopShow() { try { isDisplay = true; StateHasChanged(); } catch (Exception ex){} } } 注册为 builder.Services.AddScoped<PopMessage>() 在另一个组件中Home.razor @page "/" @inject PopMessage _popMessage <button @onclick="PopPrint">Pop message</button> <PopMessage/> @code{ private void PopPrint() { _popMessage.PopShow(); } } 现在,单击按钮时,它会在 The render handle is not yet assigned 方法中抛出异常消息,如 PopShow。 我并没有真正理解这个问题。组件 <PopMessage/> 已加载。但是在调用消息 PopShow 时会抛出此异常。如果没有 StateHasChanged(),它不会抛出异常,但状态当然不会更新。 该错误意味着尚未在 Attach 实例上调用 PopUpComponent 并且它没有 RenderHandle。 这是由渲染器将组件附加到渲染树时提供的。 您所做的是将组件注册为 DI 服务,然后在页面中使用它。 你不能这样做。 有关更多详细信息,请参阅此问题和答案 - System.InvalidOperationException:“渲染句柄尚未分配。”在 Blazor 服务器中
我正在尝试使用 blazor 登录,但现在的问题是,每当我在 inputtext 字段中输入数据时,我都会收到验证错误“此字段是必需的”,尽管信息...
我在 Blazor 中有一个简单的待办事项列表应用程序,当我检查待办事项时,待办事项列表将写入 json 文件。它一直工作到最后一个复选框。最后一个复选框不会写入 json fi...
.NET 9 Blazor WebAssembly,逐行调试不起作用:“调试适配器意外退出”
我有一个 .NET 9 Blazor WebAssembly 应用程序。我可以向我的 C# 代码添加断点,并且可以命中断点。但是,一旦我单击 F10 或 F11 执行该行,我就会看到这个错误...
使用个人帐户创建 .NET 9 Blazor 项目在注册时崩溃n
我对在 .NET 9 上使用 Blazor 创建一个新项目很感兴趣。在这个项目中,我想将身份验证类型添加为“个人帐户”。为此,我使用
我需要在 Blazor 服务器端应用程序中添加滚动到顶部按钮。我找到了这篇 How To - Scroll Back To Top Button 文章,并且可以按照它进行操作,直到添加 javascript 代码。 因为我是一个
我需要在 Blazor 服务器端应用程序中添加滚动到顶部按钮。我找到了这篇 How To - Scroll Back To Top Button 文章,并且可以按照它进行操作,直到添加 javascript 代码。 因为我是一个
Blazor Quickgrid - 如何在使用 Virtualise 时添加行计数器
使用 Blazors Quickgrid。我想显示项目的行号。 它们是“ApplicationUser”项。 (id是一个引导) 它看起来像这样: 使用 Blazors Quickgrid。我想显示项目的行号。 它们是“ApplicationUser”项。 (id是一个引导) 看起来像这样: <div class="grid" tabindex="-1"> <QuickGrid Items="FilteredUsers" Virtualize="true" @ref="_gridview" > <PropertyColumn Property="@(u => u.FirstName)" Sortable="true" /> <PropertyColumn Property="@(u => u.LastName)" Sortable="true" Title="Name"> <ColumnOptions> <input type="search" autofocus @bind="LastNamefilter" @bind:event="oninput" placeholder="Last Name ..." /> </ColumnOptions> </PropertyColumn> . . . more stuff.. “过滤用户”来自: private IQueryable<ApplicationUser> FilteredUsers; private void UpdateUsers() { FilteredUsers = _rgContext.Users.Where(u => u.LastName!.Contains(LastNamefilter) && u.Email!.Contains(Emailfilter) && u.PhoneNumber!.Contains(Phonefilter) ); totalcount = FilteredUsers.Count(); } _rgcontext 是使用 OnInit 函数中创建的 contextFactory 创建的: protected override async Task OnInitializedAsync() { _rgContext = _contextFactory.CreateDbContext(); await _userService.CheckUpdateCurrentUserInfo(); UpdateUsers(); await base.OnInitializedAsync(); return; } ...并处置:(虽然不确定这是否相关...到目前为止似乎有效。 public void Dispose() { _rgContext?.Dispose(); } 我有查询中的总计数值。但我想添加一个行号。 我似乎找不到任何地方可以(比如说)获得回调来创建一个包含这样数字的列。 有什么想法吗? 最简单的选择是使用 ItemsProvider。我发现无论如何,对于使用 EF 的大型数据集效果更好。 ItemsProvider 是带有请求参数的回调。您可以使用 request.StartIndex 作为编号的基础。您可能希望用 ViewModel 包装实体来存储数字。
使用 Blazors Quickgrid。我想显示项目的行号。它们是应用程序用户项。 (该id是GUID) 它看起来像这样: 使用 Blazors Quickgrid。我想显示项目的行号。它们是 ApplicationUser 物品。 (该id是GUID) 看起来像这样: <div class="grid" tabindex="-1"> <QuickGrid Items="FilteredUsers" Virtualize="true" @ref="_gridview" > <PropertyColumn Property="@(u => u.FirstName)" Sortable="true" /> <PropertyColumn Property="@(u => u.LastName)" Sortable="true" Title="Name"> <ColumnOptions> <input type="search" autofocus @bind="LastNamefilter" @bind:event="oninput" placeholder="Last Name ..." /> </ColumnOptions> </PropertyColumn> ... </QuickGrid> </div> FilteredUsers来自: private IQueryable<ApplicationUser> FilteredUsers; private void UpdateUsers() { FilteredUsers = _rgContext.Users.Where(u => u.LastName!.Contains(LastNamefilter) && u.Email!.Contains(Emailfilter) && u.PhoneNumber!.Contains(Phonefilter) ); totalcount = FilteredUsers.Count(); } _rgcontext 是使用在 contextFactory 函数中创建的 OnInit 创建的: protected override async Task OnInitializedAsync() { _rgContext = _contextFactory.CreateDbContext(); await _userService.CheckUpdateCurrentUserInfo(); UpdateUsers(); await base.OnInitializedAsync(); return; } ...并处置:(虽然不确定这是否相关...到目前为止似乎有效。 public void Dispose() { _rgContext?.Dispose(); } 我从查询中获得了 totalcount 值。但我想添加一个行号。 我似乎找不到任何地方可以(比如说)获得回调来创建一个包含这样数字的列.. 有什么想法吗? 最简单的选择是使用 ItemsProvider。我发现无论如何,对于使用 EF 的大型数据集效果更好。 ItemsProvider 是带有请求参数的回调。您可以使用 request.StartIndex 作为编号的基础。您可能希望用 ViewModel 包装实体来存储数字。
我有一个 MudBlazor 表,在调整窗口大小时它会不断执行此操作: 从: 在此输入图像描述 到: 在此输入图像描述 我的代码: <