【问题标题】:ServiceStack POST,PUT, DELETE method not workingServiceStack POST、PUT、DELETE 方法不起作用
【发布时间】:2015-03-25 11:09:58
【问题描述】:

我是 servicestack 的新手,不知何故我的 POST、PUT 和 DELETE 方法不起作用。

错误 - ServiceStack.WebException: 方法不允许 错误代码 - NotImplementedException

虽然 GET 方法按预期工作!

任何建议为什么我会收到这样的错误。

服务请求代码示例 -

[Route("/students", "POST")]
public class CreateStudent : IReturn<StudentDTO>
{
    public int Id { get; set; }
    public String FirstName { get; set; }
    public string LastName { get; set; }
}

服务响应 -

public StudentDTO Post(CreateStudent request)
    {
        var student = new Student()
        {
            Id = request.Id,
            FirstName = request.FirstName,
            LastName = request.LastName
        };

        using (var connection = this.OpenDbConnection())
        {
            connection.Insert(student);
        }

        return Mapper.Map<StudentDTO>(student);
    }

这就是我的称呼-

var student = new Student
        {
            Id = Guid.NewGuid(),
            FirstName = "FirstName",
            LastName = "LastName"
        };

        var response = this.Client.Post(student);

提前致谢!

【问题讨论】:

  • 这远远不足以识别问题。请提供您的服务实现的源代码、带有任何已定义路由的请求 DTO 以及您如何调用服务以及有关错误的更多详细信息,例如原始 HTTP 响应(您可以使用 Fiddler 或 WebInspector 获取)。
  • 我已经编辑了我的问题。请看一看。

标签: servicestack


【解决方案1】:

您的请求 DTO 是 CreateStudent,但您发布的是完全不同的 Student DTO,请将其更改为使用请求 DTO,例如:

var client = new JsonServiceClient(BaseUrl);

var request = new CreateStudent
{
    FirstName = "FirstName",
    LastName = "LastName"
};

var response = client.Post(request);

【讨论】:

  • 天哪,我本可以弄清楚的!非常感谢!
猜你喜欢
  • 2015-02-08
  • 2017-07-17
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 2020-09-21
  • 2012-01-20
相关资源
最近更新 更多