Blazor.net不需要的按钮单击输入按键

时间:2019-12-21 05:36:03

标签: c# .net button input blazor

我是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 );
         }
     }

一切正常,除了每当我在任何一个输入元素中按下一个键时,绑定到按钮的事件也会触发。这样,每次按键我都会得到一个按钮事件。

2 个答案:

答案 0 :(得分:1)

看来按钮事件的结构必须类似于:      @onclick =“(e => Model.ExecuteSignIn())”

答案 1 :(得分:0)

升级到.NET CORE 3.1版本后,@ onclick =“ Model.ExecuteSignIn”现在可以使用。

相关问题