0

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属性为空。

如果我将 post 方法更改为字符串,那么我的客户端会收到405 Method not allowed

public void Post(string message)
{
    using (var context = new ToDoEntities())
    {
       // context.Tasks.Add(todo.todo.ToEf());
       // context.SaveChanges();
    }
}

我很茫然,希望得到一些帮助,了解字符串的反序列化是如何发生的,以及为什么我会得到这些奇怪的结果。

4

1 回答 1

1

原因是我的任务实体类没有空构造函数

于 2013-09-20T08:46:59.463 回答