如何在MarkupString中绑定事件

问题描述 投票:0回答:1
@if(!string.IsNullOrEmpty(_markup))
{
    @((MarkupString)_markup)
}
@code {
    public string _markup = "<ul><li class='li-a'>A</li><li class='li-a'>B</li></ul>";
}

我想在 MarkupString 中绑定事件。

我留下问题是因为我对 Blazor 没有足够的了解,因此,我没有足够的关键字在 Google 上搜索。

前)

public string _markup = "<ul><li class='li-a' @onclick="(e) => clicktext(e)">A</li><li class='li-a' @onclick="(e) => clicktext(e)">B</li></ul>";


    void clicktext(object e)
    {
        //code here..
    }
blazor blazor-webassembly webassembly event-binding
1个回答
0
投票

你不能用 MarkupString 来做到这一点。如果您想要交互行为,您需要使用

RenderFragment
。由于您没有提供问题的任何背景信息,我不知道这是否适合您的用例。

这是一个简单的例子:

@page "/"
@using Microsoft.AspNetCore.Components.Rendering

<PageTitle>Home</PageTitle>

<h1>Hello, world!</h1>

@_markup

@code{
    private RenderFragment _markup => (__builder) =>
    {
    <ul>
        <li class="li-a" @onclick="OnClickText">A</li>
        <li class="li-a" @onclick="OnClickText">B</li>
    </ul>
    };

    private Task OnClickText(MouseEventArgs e)
    {
        //code here..
        return Task.CompletedTask;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.