Я разрабатываю веб-приложение, используя ASP .NET Core 2.0
У меня есть частичное представление, которое содержит форму.
Затем у меня есть метод действия внутри контроллера, который выполняетсячерез функцию JS, которая использует AJAX.Этот метод действия заполняет модель и возвращает частичное представление формы и соответствующую модель.
Функция работает хорошо, пока модель не заполнена.Мне нужно получить запись из базы данных, когда определенное поле заполнено, а затем теряет фокус.Это работает впервые, когда используемая в форме модель пуста.Однако после первого нахождения записи и заполнения формы функция больше не выполняется.
Также проверки поля также не работают после загрузки записи.
Вот частичное представление формы:
<form id="myform">
<div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group col-lg-2">
<label asp-for="Client.Name">Client</label>
<input asp-for="Client.Name" id="ClientName" />
</div>
<div class="form-group col-lg-1">
<label asp-for="Cliente.Phone"></label>
<input asp-for="Cliente.Phone" id="Phone"/>
</div>
</form>
Функция JS / AJAX:
<script>
$("form").on("blur", "#Phone", function () {
var phone = document.querySelector('#Phone').value;
alert('select client by phone=' + phone);
//Send the JSON array to Controller using AJAX.
$.ajax({
type: "POST",
url: "/Home/GetClienteByPhone",
data: "phone=" + phone,
success: function (res) {
$('#myform').html(res);
}
})
});
</script>
Наконец, метод действия контроллера (Controller = Home):
public IActionResult GetClienteByPhone(string phone)
{
if (!string.IsNullOrEmpty(phone))
{
var model = new FormViewModel();
model.Client = _db.Clients.Where(c => c.Phone == phone).FirstOrDefault();
return PartialView("_Form", model);
}
return PartialView("_Form");
}
В моем представлении я отображаю частичное представление в div с id = "myform"
Кто-нибудь знает почему?
Спасибо