0

我遵循了本指南:https ://github.com/Blazored/Modal 。(目前我已经安装了最新的稳定包 - 5.0.2)。我经历了这些步骤:

  1. 安装包
  2. 添加了导入
  3. 更改了 CascadingBlazoredModal
  4. 在 _host 中添加了两个引用
  5. 将 Index.razor 更改为以下代码:
@page "/"
@inject IModalService Modal

<h1>Hello, world!</h1>

Welcome to Blazored Modal.

<button @onclick="@(() => Modal.Show<FetchData>("Fetched data"))" class="btn btn-primary">Fetched data</button>

我尝试了几种不同的解决方案(包括:切换浏览器,仅使用引导程序) - 似乎没有任何效果。

我注意到一件奇怪的事情 - 其他按钮似乎都不起作用(它们是可点击的,但没有执行任何操作),因此这可能是解决此错误的线索。

如果有人可以用一个看起来像模态弹出窗口的简单 div 来帮助我,我也会很高兴,因为这会使事情变得更容易。

4

1 回答 1

0

引导模式依赖于直接在元素上操作 css 类和样式的 java 脚本。我很快把它敲了起来,以展示如何使用 Blazer 来操作它不完整的相同类。

模态剃须刀

<button class="btn btn-primary"  @onclick="ToggleModal">
    Launch demo modal
</button>

<div class="@modalClass" tabindex="-1" style="display: @displayMode;" >
    <div class="modal-dialog" >
       <div class="modal-content" >
            <div class="modal-header" >
                <h5 class="modal-title" >Modal title</h5>
                <button class="close" @onclick="ToggleModal" aria-label="Close" >
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                @ChildContent
            </div>
            <div class="modal-footer">
                <button class="btn btn-secondary"  @onclick="ToggleModal">Close</button>
                <button class="btn btn-primary">Save changes</button>
            </div>
        </div>
    </div>
</div>


@code {

    bool open = false;
    string modalClass => open ? "modal fade show" : "modal fade";
    string displayMode => open ? "block" : "none";


    private void ToggleModal()
    {
        open = !open;       
        StateHasChanged();
    }

    [Parameter]
    public RenderFragment ChildContent { get; set; }
}
于 2020-07-31T01:02:09.370 回答