我有一个新的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");
}
}
我尝试了很多组合,但是现在,没有一种方法被调用!
答案 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()中放置一个断点以验证其是否被调用。