永不调用Blazor按钮的onclick事件

时间:2019-12-22 13:35:33

标签: asp.net asp.net-core blazor

我有一个新的Blazor项目,我添加了2个按钮:

1-普通按钮 2-MatBlazor按钮

我尝试在click事件上调用一个简单的方法,但是没有用!

        <MatButton OnClick="@(() => Logout())" Icon="exit_to_app" Label="Log out" />
        <MatButton OnClick="@OnClickHandler" Icon="exit_to_app" Label="Log out 2" />
        <button @onclick="@OnClickHandler">Log out 3</button>

@code {

    public void OnClickHandler(MouseEventArgs e)
    {
        NavigationManager.NavigateTo("/Account/Logout");
    }

    //public void Logout(/*MouseEventArgs e*/)
    public async Task Logout()
    {
        NavigationManager.NavigateTo("/Account/Logout");
    }

}

我尝试了很多组合,但是现在,没有一种方法被调用!

4 个答案:

答案 0 :(得分:1)

一切都对我有利。我创建了一个新的.Net Core 3.1 LTS项目

<p>Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="OnClickHandler">Click me</button>
<button class="btn btn-primary" @onclick="()=> IncrementCount()">Click me 2</button>
<button class="btn btn-primary" @onclick="@OnClickHandler">Click me 3</button>

<button class="btn btn-primary" @onclick="@(() => IncrementCount())">Click me 4</button>

@code {
    private int currentCount = 0;

    public void IncrementCount()
    {
        currentCount++;
    }

    public Task OnClickHandler(MouseEventArgs e)
    {
        currentCount++;

         return Task.CompletedTask;
    }
}

答案 1 :(得分:1)

我必须添加这一行:-P

app.UseHttpsRedirection();

答案 2 :(得分:0)

我通过提供MatButton onClick使用了delegate属性

<MatButton TrailingIcon="favorite" @onclick="@(async () => await AddItemtoShoppingCart(@item))" Label="add"></MatButton>

下面是我的方法。

@code {
public async Task AddItemtoShoppingCart(FoodItem selectedItem)
    {
        selectedItem.AddedToCart = true;
    }
}

答案 3 :(得分:-1)

标准版本为

  <button @onclick="Logout">Log out 3</button>`

...

public async Task Logout()
{
    NavigationManager.NavigateTo("/Account/Logout");
}

如果此操作无效,则NavigateTo()可能有问题

首先在Logout()中放置一个断点以验证其是否被调用。