Звонок из просмотра
$.ajax({ URL: _urls.saveNoteDetailsUrl, тип: "ПОСТ", кеш: ложь, contentType: «приложение/json», данные: JSON.stringify(inputModel), успех: функция (ответ) { window.location.assign(_urls.ReturnToHomePageUrl); } Контроллер [*]Подход 1 [HttpPost] общедоступный IActionResult SaveNote (модель PNoteRequest) [*]Подход 2 [HttpPost] public IActionResult SaveNote ([FromBody] модель PNoteRequest) Подход1 получает модель, но все значения равны нулю Approach2 передает NULL для самой модели.
Та же конечная точка вызывается из другого представления, которое выдает ту же ошибку, если я использую подход 1, но работает нормально, если я использую подход 2. Структура inputModel немного отличается: в нерабочем вызове присутствуют дополнительные пары ключ-значение по сравнению с рабочим вызовом. Я убедился, что все ключи присутствуют в ViewModel.
Если я внесу следующие изменения, вызовы из обоих представлений будут работать
[*]Передайте inputModel, отбрасывая метод JSON.Stringify. [*]Удалите параметр contentType в вызове AJAX [*]Удалите тег [FromBody] из метода контроллера
но данные передаются как urlencoded, и это создает еще одну проблему, когда inputModel становится огромной. Поэтому мне нужно передать данные в формате JSON, а не в urlencoded.
Как исправить?
Спасибо за ваши ответы. Думаю, я не правильно объяснил суть вопроса. Есть два представления, выполняющие вызов AJAX POST к одной и той же конечной точке. Все работает нормально, если передаваемый объект не огромен. Если объект огромен, он передает NULL для модели в КОНТРОЛЛЕР. Чтобы исправить вышеуказанную проблему, я внес следующие изменения: 1) Добавлен [FromBody] в CONTROLLER. 2) Добавлен параметр contentType и JSON.Stringify() в вызов AJAX в VIEWS. Теперь вызов с одного из VIEW работает, а с другого нет. Другой вызов передает NULL для модели КОНТРОЛЛЕРУ
Я стараюсь предоставить как можно больше информации. Код в двух представлениях огромен: он объединяет значения с экрана для создания входной модели. Я проверял несколько раз, разница в вызовах AJAX заключается только в ключе NoteInfo.
Вот файл класса PNoteRequest. В классе PNoteRequest имеется около 30 других свойств.
публичный класс PNoteRequest { общественный ИНТ RequestId {получить; набор; } общественный NoteInfo NoteInfo {get; набор; } общественная строка RequestText {получить; набор; } публичная строка RecordNo {get; набор; } } В классе NoteInfo есть еще около 20 свойств.
публичный класс NoteInfo { общедоступная строка Title {get; набор; } общедоступная строка Описание {get; набор; } публичный логический тип? IsSAR {получить; набор; } общественный ИНТ MemoOverRideRecordNumber {получить; набор; } общественный bool IsToReplaceSAR {получить; набор; } публичный интервал? Регион {получить; набор; } общественная строка QISNo {получить; набор; } общественная строка RevisionComments {get; набор; } } Разница между вызовами из двух представлений находится в свойствах NotInfo
Запросить полезную нагрузку для работающего вызова
{"RequestId":4062, "NoteInfo":{"Title":"Сохранить проверку примечания для небольшого объекта JSON.", "Description":"Вызов AJAX для сохранения ПРИМЕЧАНИЕ и SAR.", «ИССАР»: false} } Запросить полезные данные для вызова, приостановившего NULL
{"RequestId":0, "NoteInfo":{"Title":"Сохранить проверку примечания для небольшого объекта JSON.", "Description":"Вызов AJAX для сохранения ПРИМЕЧАНИЕ и SAR.", «IsToReplaceSAR»: ложь, "MemoOverRideRecordNumber":"", "Комментарии к редакции":"", "Область":"", "QISНет":""} }
Вызов AJAX POST к контроллеру передает NULL ⇐ Jquery
Программирование на jquery
-
Anonymous
1699321805
Anonymous
Звонок из просмотра
$.ajax({ URL: _urls.saveNoteDetailsUrl, тип: "ПОСТ", кеш: ложь, contentType: «приложение/json», данные: JSON.stringify(inputModel), успех: функция (ответ) { window.location.assign(_urls.ReturnToHomePageUrl); } Контроллер [*]Подход 1 [HttpPost] общедоступный IActionResult SaveNote (модель PNoteRequest) [*]Подход 2 [HttpPost] public IActionResult SaveNote ([FromBody] модель PNoteRequest) Подход1 получает модель, но все значения равны нулю Approach2 передает NULL для самой модели.
Та же конечная точка вызывается из другого представления, которое выдает ту же ошибку, если я использую подход 1, но работает нормально, если я использую подход 2. Структура inputModel немного отличается: в нерабочем вызове присутствуют дополнительные пары ключ-значение по сравнению с рабочим вызовом. Я убедился, что все ключи присутствуют в ViewModel.
Если я внесу следующие изменения, вызовы из обоих представлений будут работать
[*]Передайте inputModel, отбрасывая метод JSON.Stringify. [*]Удалите параметр contentType в вызове AJAX [*]Удалите тег [FromBody] из метода контроллера
но данные передаются как urlencoded, и это создает еще одну проблему, когда inputModel становится огромной. Поэтому мне нужно передать данные в формате JSON, а не в urlencoded.
Как исправить?
Спасибо за ваши ответы. Думаю, я не правильно объяснил суть вопроса. Есть два представления, выполняющие вызов AJAX POST к одной и той же конечной точке. Все работает нормально, если передаваемый объект не огромен. Если объект огромен, он передает NULL для модели в КОНТРОЛЛЕР. Чтобы исправить вышеуказанную проблему, я внес следующие изменения: 1) Добавлен [FromBody] в CONTROLLER. 2) Добавлен параметр contentType и JSON.Stringify() в вызов AJAX в VIEWS. Теперь вызов с одного из VIEW работает, а с другого нет. Другой вызов передает NULL для модели КОНТРОЛЛЕРУ
Я стараюсь предоставить как можно больше информации. Код в двух представлениях огромен: он объединяет значения с экрана для создания входной модели. Я проверял несколько раз, разница в вызовах AJAX заключается только в ключе NoteInfo.
Вот файл класса PNoteRequest. В классе PNoteRequest имеется около 30 других свойств.
публичный класс PNoteRequest { общественный ИНТ RequestId {получить; набор; } общественный NoteInfo NoteInfo {get; набор; } общественная строка RequestText {получить; набор; } публичная строка RecordNo {get; набор; } } В классе NoteInfo есть еще около 20 свойств.
публичный класс NoteInfo { общедоступная строка Title {get; набор; } общедоступная строка Описание {get; набор; } публичный логический тип? IsSAR {получить; набор; } общественный ИНТ MemoOverRideRecordNumber {получить; набор; } общественный bool IsToReplaceSAR {получить; набор; } публичный интервал? Регион {получить; набор; } общественная строка QISNo {получить; набор; } общественная строка RevisionComments {get; набор; } } Разница между вызовами из двух представлений находится в свойствах NotInfo
Запросить полезную нагрузку для работающего вызова
{"RequestId":4062, "NoteInfo":{"Title":"Сохранить проверку примечания для небольшого объекта JSON.", "Description":"Вызов AJAX для сохранения ПРИМЕЧАНИЕ и SAR.", «ИССАР»: false} } Запросить полезные данные для вызова, приостановившего NULL
{"RequestId":0, "NoteInfo":{"Title":"Сохранить проверку примечания для небольшого объекта JSON.", "Description":"Вызов AJAX для сохранения ПРИМЕЧАНИЕ и SAR.", «IsToReplaceSAR»: ложь, "MemoOverRideRecordNumber":"", "Комментарии к редакции":"", "Область":"", "QISНет":""} }
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия