Сторона сервера Blazor с отправкой формы в IIS - PullRequest
0 голосов
/ 08 мая 2020

У меня есть серверный проект Blazor с отправкой формы:

        <EditForm Model="@myWebUserVM" OnValidSubmit="HandleValidSubmit">
            <DataAnnotationsValidator />
            <ValidationSummary />
            @if (IsPasswordIncorrect)
            {<h6 class="text-danger">User Name or Password is incorrect.</h6>}
            <div class="row">
                <label class="col-md-4">User Name:</label>
                <div class="col-md-8">
                    <InputText id="uname" class="form-control" placeholder="User Name" @bind-Value="myWebUserVM.UserName" />
                </div>
            </div>
            <div class="row my-3">
                <label class="col-md-4">Password:</label>
                <div class="col-md-8">
                    <InputText id="upassword" class="form-control" type="password" placeholder="Password" @bind-Value="myWebUserVM.Password" />
                </div>
            </div>
            <div class="text-center">
                <button class="btn btn-outline-success" type="submit">Login</button>
            </div>
        </EditForm>

Это отлично работает, когда я запускаю его локально в VS2019. Когда я публикую sh в IIS, форма работает иначе. Нажатие кнопки отправки отправит http-сообщение на сервер, и страница / форма просто перезагрузится. Так что, похоже, я просто открываю его в первый раз или нажимаю F5 в браузере. Код в "private void HandleValidSubmit ()" не сработает. Похоже, я просто публикую обычную форму с HTTP. Но это SPA, мне он не нужен для постинга по HTTP. Какой должен быть правильный код для формы Blazor с проверкой? Почему он работает в режиме отладки VS2019? Или, скорее всего, требуется настройка IIS? Спасибо.

1 Ответ

0 голосов
/ 08 мая 2020

Я нашел причину этого. В консоли Firefox и Chrome ошибка консоли: Ошибка: обнаружен искаженный комментарий компонента в Blazor: {"sequence": 0, "type": "server", "prerenderId" ... и только MS Edge показал, что есть два Элементы BODY в HTML. Эти два вызывают ошибку в blazor. js. Второе ТЕЛО пришло из TelerikRootComponent в MainLayout.razor. Таким образом, удаление второго ТЕЛА устранило проблему. До сих пор не понимаю, почему в VS2019 все работало нормально. Похоже, что эта ошибка Blazor «Обнаружен искаженный комментарий к компоненту в Blazor» не должна игнорироваться разработчиками. И MS Edge тоже нельзя игнорировать: -)

...