Json从客户端发送到我的api控制器
消息
{"todo":{"title":"jo","isCompleted":false,"isDeleted":false,"testFK":null}}
我将列出不同的消费服务器端方法,这些方法应该将此消息转换为对象
public void Post(TaskEntity todo)
{
using (var context = new ToDoEntities())
{
context.Tasks.Add(todo.ToEf());
context.SaveChanges();
}
}
todo
参数为空。
public void Post(UpdateTodoInputMessage message)
{
using (var context = new ToDoEntities())
{
context.Tasks.Add(todo.todo.ToEf());
context.SaveChanges();
}
}
消息类
namespace MvcApplication1.Messages
{
[DataContract]
public class UpdateTodoInputMessage
{
[DataMember]
public TaskEntity todo { get; set; }
}
}
邮件类的todo
属性为null。
如果我将post方法更改为字符串,那么我的客户端会收到 405 Method not allowed 。
public void Post(string message)
{
using (var context = new ToDoEntities())
{
// context.Tasks.Add(todo.todo.ToEf());
// context.SaveChanges();
}
}
我很茫然,并且希望能够帮助解决字符串的反序列化,以及为什么我会得到这些奇怪的结果。
答案 0 :(得分:1)
原因是我的Task Entity类没有空构造函数