2
我拥有带简单控制器的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数据通过邮递员发送的请求,但它并没有解决我的问题。
您的课程对象有一个ID。为了实现模型绑定,对象需要完全匹配;这也适用于房产的资本化。 –
不,这不是我的问题的解决方法,我创建了一个新课程“PostLesson”,其中所有字段都来自“Lesson”但是“Id”,并且它不能解决我的问题。 – user3272018
您创建的新类是camelCase,属性名称的第一个字母小写,就像您要发布的正文内容一样? –