我是Blazor的新手,并且刚刚开始评估它是否适合我们公司的未来需求。
我已经建立了一个页面并创建了MVVM类。我已经在控制台应用程序中测试并调试了MVVM类,并且工作正常。
这是我的页面:
enter code here@page "/signIn"
@using System.Runtime.CompilerServices
@using ViewModels.Models.SignIn
<h1>Sign In</h1>
<table width="200" border="1">
<tbody>
<tr>
<td>Account</td>
<td>
<input @bind-value="@Model.CarrierId" @bind-value:event="oninput"/>
</td>
</tr>
<tr>
<td>Username</td>
<td>
<input autofocus @bind-value="@Model.UserName" @bind-value:event="oninput"/>
</td>
</tr>
<tr>
<td>Password</td>
<td>
<input type="password" @bind-value="@Model.Password" @bind-value:event="oninput">
</td>
</tr>
<tr>
<td>"@Model.Clicked"</td>
<td>
<button disabled="@Model.DisableSignIn" @onclick="@Model.ExecuteSignIn()">Login</button>
</td>
</tr>
</tbody>
</table>
@code {
SignInViewModel Model;
protected override void OnInitialized()
{
base.OnInitialized();
Model = new SignInViewModel( StateHasChanged );
}
}
一切正常,除了每当我在任何一个输入元素中按下一个键时,绑定到按钮的事件也会触发。这样,每次按键我都会得到一个按钮事件。
答案 0 :(得分:1)
看来按钮事件的结构必须类似于: @onclick =“(e => Model.ExecuteSignIn())”
答案 1 :(得分:0)
升级到.NET CORE 3.1版本后,@ onclick =“ Model.ExecuteSignIn”现在可以使用。