为什么对话服务在我的 Blazor 应用程序中不起作用?有什么想法吗?

问题描述 投票:0回答:2

我正在尝试使用 Radzen 在 Blazor 中创建一个弹出窗口,但我相信由于代码部分中的对话服务,这不起作用。一切运行正常,除了当我单击按钮时没有弹出任何内容。我怎样才能让它工作?

<RadzenDataGridColumn TItem="IDictionary<string, object>" Title="Modify">
                            <Template>
                                <RadzenButton ButtonStyle="ButtonStyle.Info" Icon="edit" 
                                    Class="m-1" Click=@EditSkill/>
                            </Template>
                        </RadzenDataGridColumn>
@code{
    async Task EditSkill()
    {
     await DialogService.OpenAsync("Edit Skill", ds =>
        @<RadzenCard>
          <div>
            <p class="mb-4">Skill ID <b>1</b></p>
            <div class="row">
                <div class="col">
                    <RadzenButton Text="Ok" Click="() => ds.Close(true)" Class="mr-1" 
                        Style="width: 80px;" />
                    <RadzenButton Text="Cancel" Click="() => ds.Close(false)" 
                        ButtonStyle="ButtonStyle.Secondary" Class="mr-1" />
                </div>
            </div>
        </div>
        </RadzenCard>);
    }
}
c# .net blazor blazor-webassembly radzen
2个回答
4
投票

为了使用 Radzen 的 Dialog 控件,您需要将其注册到应用程序的服务集合中并引用该组件。

首先,在 Shared\MainLayout.razor 中添加对 Dialog 组件的引用:

<RadzenDialog/>

然后,对于 .Net 6 之前的版本,请使用:

services.AddScoped<DialogService>();

在 Startup.cs ->ConfigureServices 方法中

对于.Net 6及更高版本,在program.cs -> Main方法中使用此方法:

builder.Services.AddScoped<DialogService>();

在此处查看 Radzen 文档:https://blazor.radzen.com/get-started


0
投票

设置渲染模式 @rendermode="@RenderMode.InteractiveServer" />

© www.soinside.com 2019 - 2024. All rights reserved.