Blazor @onkeypress текстового поля не работает в IE? - PullRequest
0 голосов
/ 11 октября 2019

Я создаю серверное приложение на стороне сервера и у меня есть следующий файл бритвы.

@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(), когда в IE? Работает в Chrome.

1 Ответ

2 голосов
/ 11 октября 2019

Я думаю, что вы можете пропустить регистрацию TestViewModel в Startup.ConfigureServices

Вы можете перейти по этой ссылке: https://docs.microsoft.com/en-us/aspnet/core/tutorials/build-your-first-blazor-app?view=aspnetcore-3.0, чтобы узнать больше.

Если вы хотите, чтобы Blazor работал на IE11,пожалуйста, добавьте Polyfills. Перейдите по этой ссылке: https://github.com/Daddoon/Blazor.Polyfill, чтобы узнать больше.

Вы можете скачать Polyfills здесь: https://github.com/Daddoon/Blazor.Polyfill/releases

Вот пример после вашего вопроса. Надеюсь помочь, мой друг :))

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>

4) В _Host представлении

@page "/"
@namespace BlazorApp.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>BlazorApp</title>
    <base href="~/" />
    <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
    <link href="css/site.css" rel="stylesheet" />
</head>
<body>
    <app>
        @(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
    </app>

    <script src="~/scripts/blazor.polyfill.min.js"></script>
    <script src="_framework/blazor.server.js"></script>
</body>
</html>
...