Передайте данные формы Razor Form обратно в метод контроллера С# в качестве модели из загрузочного модального с ajax

76
4

Итак, у меня есть метод контроллера, который определяется как:

    [WebMethod]
public bool ModalCreate([Bind(Include = "LastName,FirstName,EmailAddress,PhoneNumber,CustomerID,VendorID")] Person person)
{
try
{
if (ModelState.IsValid)
{
db.CorrActionPerson.Add(person);
db.SaveChanges();
return true;
}
}
catch (Exception ex)
{
ModelState.Merge(globalUtils.HandleExceptions(ex));
}

// do stuff...

return false;
}

и у меня также есть метод AJAX, который я бы хотел использовать, чтобы отправить пользователя обратно из модального окна загрузки. Я использую Entity Framework 6 и MVC 5.

Вот что я пробовал для AJAX:

    let objModalForm = $('#newPersonModal form');

let person = objModalForm.serializeArray();

$.ajax({
url: urlPrefix + '/Quality/CorrAction/Person/ModalCreate',
data: { person: person },
async: false
}).done(function (data) {
if (data === 'True') {
//do other stuff
}
});

спросил(а) 2021-01-19T18:49:50+03:00 5 месяцев назад
1
Решение
89

Ваш комментарий говорит о методе контроллера, поэтому атрибут [WebMethod] не нужен. Попробуйте изменить свойство данных запроса AJAX:

data: person,

MVC соответствует свойствам класса Person, но имя параметра "person" не имеет значения. Переданные данные также должны быть классом, а не массивом, поэтому также попробуйте использовать метод serialize():

//let person = objModalForm.serializeArray();
let person = objModalForm.serialize();

ответил(а) 2021-01-19T18:49:50+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема