Blazor @onkeypress的文本框在键入后没有运行?

问题描述 投票:0回答:1

我正在创建服务器端的blazor应用程序,并具有以下剃刀文件。

@page "/test"
@using BlazorApp2.Data
@inject ViewModels.TestViewModel VM

<div>
    Search:
    <input id="search" type="text" @bind="VM.Search" @onkeypress="@VM.SearchChanged" />
    <span>@VM.Search</span>
</div>

ViewModels.TestViewModel:

public string Search { get; set; }

public async void SearchChanged()
{
    // Break point set but not hit?
}

在文本框中输入“搜索”没有达到SearchChanged()中设置的断点吗?另外,<span>@VM.Search</span>中的文字也不会更改吗?

c# razor blazor blazor-server-side
1个回答
0
投票

我认为您可能会错过在Startup.ConfigureServices中注册TestViewModel的方法>

您可以访问此链接:https://docs.microsoft.com/en-us/aspnet/core/tutorials/build-your-first-blazor-app?view=aspnetcore-3.0以了解更多。

这是您的问题后面的样本。

1)型号

namespace BlazorApp.Models
{
    public class TestViewModel
    {
        public string Search { get; set; }

        public async void SearchChanged()
        {
            // Break point set but not hit?
            Search = "Hello world";            
        }
    }
}

2)在启动类中>

public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();
            services.AddServerSideBlazor();
            services.AddSingleton<WeatherForecastService>();
            services.AddSingleton<Models.TestViewModel>();
        }

3)查看

@page "/testview"
@inject Models.TestViewModel VM

<h1>Test Blazor</h1>
<div>
    Search:
    <input id="search" type="text" @bind="VM.Search" @onkeypress="@VM.SearchChanged" />
    <span>@VM.Search</span>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.