Давайте рассмотрим следующую страницу в приложении Blazor на стороне клиента:
@page "/test"
<div id="modalDialog" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<EditForm Model="@model" OnSubmit="@SubmitHandler">
<div class="form-group d-flex justify-content-between">
<label class="col-form-label col-3" for="editDT">Time</label>
<InputText bind-Value="@model" id="editDT" Class="form-control" />
</div>
<button type="submit" class="btn btn-primary" @*data-dismiss="modal"*@>Submit</button>
</EditForm>
</div>
</div>
</div>
</div>
<button data-toggle="modal" data-target="#modalDialog" class="btn btn-primary">Open</button>
@functions {
private string model { get; set; } = "Model";
private void SubmitHandler()
{
Console.WriteLine("Submit");
}
}
Когда я нажимаю кнопку «Открыть», модальное изображение отображается, как и ожидалось. Затем, нажав кнопку «Отправить» в модальном режиме, «Отправить» будет напечатано в консоли браузера, как и ожидалось.
Но мне нужно также закрыть модальное окно, когда я нажимаю Отправить, чтобы я раскомментировал информацию об отклонении данных.
Теперь модальный режим закрывается, как и ожидалось, но обработчик Submit больше не вызывается (консоль браузера остается пустой).
1) Это ожидаемое поведение?
2) Если да, есть ли способ закрыть модальное окно в обработчике отправки без взаимодействия с JavaScript?
3) Если нет, есть ли другой способ закрыть модальное окно и вызвать обработчик Submit при нажатии кнопки Submit, опять же без js interop?