Blazor(服务器端)错误未捕获 ReferenceError:未定义 LoginContributor

时间:2021-04-17 23:29:12

标签: blazor blazor-server-side

遇到一个奇怪的问题。这是一个使用 .NET Core 3.1 的 Blazor 应用程序(服务器端)

我创建了一个新的 Blazor 应用程序来重现这一点。我修改了 Counter 示例并将其修改为以下内容:

@page "/counter"

<h1>Counter</h1>

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

<EditForm Model="@loginData" OnValidSubmit="LoginContributor">
    <div class="login-section">
        <div class="row">
            <div class="col">
                <label for="UserNameEdit" class="col-form-label">Username:</label>
                <InputText id="UserNameEdit" @bind-Value="loginData.Username"></InputText>
            </div>
            <div class="col">
                <label for="PasswordEdit" class="col-form-label">Password:</label>
                <InputText id="PasswordEdit" @bind-Value="loginData.Password" type="password"></InputText>
            </div>
            <div class="col">
                <button id="LoginButton" class="btn btn-primary" onclick="LoginContributor">Log In</button>
            </div>
        </div>
        <div class="row">
            <div class="col">
                <InputCheckbox id="SaveLoginEdit" @bind-Value="loginData.SaveLoginInformation"></InputCheckbox>
                <label for="SaveLoginEdit" class="col-form-label">Save login information</label>
            </div>
        </div>
    </div>
</EditForm>

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

@code {

    public class LoginObject
    {
        public string Username = "";
        public string Password = "";
        public bool SaveLoginInformation = false;
    }

    private LoginObject loginData = new LoginObject();
    private int currentCount = 0;

    private void LoginContributor()
    {
        IncrementCount();
    }

    private void IncrementCount()
    {
        currentCount++;
    }
}

如果单击“单击我”按钮,控制台上不会出现任何错误,但如果单击“登录”按钮,则会出现以下控制台错误:

counter:1 Uncaught ReferenceError: LoginContributor is not defined
    at HTMLButtonElement.onclick (counter:1)

代码仍然可以正常执行,但我不喜欢控制台错误,想知道它为什么会出现以及如何修复它。

谢谢!

1 个答案:

答案 0 :(得分:2)

这是因为您在按钮上使用 onclick 而不是 @onclickonclick 期望 javascript 代码,@onclick 期望 c# 函数。
右:
<button id="LoginButton" class="btn btn-primary" @onclick="LoginContributor">Log In</button>