У меня есть приложение Web Api с простым контроллером. Получить методы работают нормально, но у меня проблема с отправкой и отправкой запросов.Не удается опубликовать данные в MVC 6 Приложение Web Api
[Route("api/[controller]")]
[EnableCors("AllowAll")]
public class LessonController : Controller {
...
[HttpPut("{id}")]
public void Put(int id, [FromBody] Lesson lesson) {
...
}
....
}
где Lesson
является
public class Lesson {
public int Id { get; set; }
public string Name { get; set; }
public string Text { get; set; }
public string Description { get; set; }
public bool IsModerated { get; set; }
public int? PrevLessonId { get; set; }
public int? NextLessonId { get; set; }
}
Так я пытаюсь отправить запрос и не везёт, урок является только объект по умолчанию инициализируется свойствами. Я послал запрос в два пути: первый с JS
$.ajax({
type: "POST",
url: 'http://localhost:1822/api/lesson/1',
data: JSON.stringify({
lesson: {
description: "Fourth lesson description",
isModerated: true,
name: "Fourth lesson",
nextLessonId: 5,
prevLessonId: 3,
text: "Fourth lesson text"
}}),
contentType: "application/json",
success: function (data) {
alert(data);
}
});
Так тип содержимого правильно. Может ли кто-нибудь сказать мне, с чем связана проблема?
UPD: Я пытался использовать PostLesson
модель, которая содержит все свойства от Lesson
но Id
и послал запрос через Почтальон с данными UpperCamelCase в теле, но это не решает мою проблему.
Ваш объект Lesson имеет идентификатор. Чтобы произошла привязка к модели, объекты должны точно совпадать; что также относится к капитализации свойств. –
Нет, это не проблема для моей проблемы, я создал новый класс 'PostLesson' со всем полем из' Lesson', но 'Id', и это не решает мою проблему. – user3272018
Новый класс, который вы создали, - это camelCase с именами свойств, имеющих первую строчную букву, такую как содержимое тела, которое вы публикуете? –