#html #ajax #aspnet_core
Есть асинхронный запрос AJAX, который норм работает, данные в контроллер ходят без
проблем и на контроллере тоже все норм работает. Контроллер обновляет данные пользователя.
Но если это асинхронный запрос, то он не должен перезагружать страницу. Вот скрипт
который срабатывает при загрузке страницы, Достаем данные и распаршиваем в таблицу.
Все ок тут.
function getDataList() {
var serviceURL = '/api/ProfessorsApi/';
$.ajax({
type: "GET",
url: serviceURL,
contentType: "application/json;",
success: successFunc,
error: errorFunc
});
function successFunc(data, status) {
var obj = $.parseJSON(data);
Вот скрипт пост метода асинхронного аякс
function postData() {
let nameStudent = document.querySelector('[name="Name"]').value;
let surnameStudent = document.querySelector('[name="Surname"]').value;
let midlnameStudent = document.querySelector('[name="Midlname"]').value;
let emailStudent = document.querySelector('[name="Email"]').value;
let telephoneStudent = document.querySelector('[name="TelNumber"]').value;
let oldEmailStudent = document.querySelector('[name="OldEmail"]').value;
var parametrs = {
Name: nameStudent, Surname: surnameStudent, Midlname: midlnameStudent,
Email: emailStudent, TelNumber: telephoneStudent, OldEmail: oldEmailStudent
};
var serviceURL = '/api/ProfessorsApi/';
$.ajax({
type: "POST",
url: serviceURL,
data: JSON.stringify(parametrs),
contentType: "application/json;",
//success: successFunc,
//error: errorFunc
});
function successFunc(data, status) {
}
function errorFunc() {
}
И вот форма HTML асинхронного запроса которая на onclick отправляет на функцию potsData().
Она в диалоговом окне открывается бутстрапа.
Ну и на последок, контроллер
[HttpPost]
public async Task Post([FromBody]UpdateUserViewModel model)
{
if (ModelState.IsValid)
{
var user = _userManager.FindByEmailAsync(model.OldEmail).Result;
if (user != null)
{
user.Email = model.Email;
user.Name = model.Name;
user.Surname = model.Surname;
user.Midlname = model.Midlname;
var result = await _userManager.UpdateAsync(user);
if (result.Succeeded)
{
var studentUpdate = _db.ProfessorModel.FirstOrDefault(m => m.Email
== model.OldEmail);
if (studentUpdate != null)
{
studentUpdate.Name = model.Name;
studentUpdate.Surname = model.Surname;
studentUpdate.Midlname = model.Midlname;
studentUpdate.TelNumber = model.TelNumber;
studentUpdate.Email = model.Email;
await _db.SaveChangesAsync();
}
//await _signInManager.SignInAsync(user, false);
}
}
}
return "Ok";
}
Ответы
Ответ 1
Проблема решилась тем что просто нужно в HTML форме поменять тег input type="submit"
на button. Оно ведь так и есть. Сабмит по идеи и должен перезагружать страницу. Поменял
и все ок без перезагрузки все работает.
Комментариев нет:
Отправить комментарий