我无法在Nancy中使用Bind<T>()
方法处理POST请求。我有这个班级*:
public class MyPost
{
public string title { get; set; }
public string content { get; set; }
}
我有这个NancyModule只是镜像POST数据:
public class ConfigModule : NancyModule
{
public ConfigModule() : base("/config")
{
Post["/update"] = parameters =>
{
var mypost = this.Bind<MyPost>();
return Response.AsJson<MyPost>(mypost);
};
}
}
当我使用Chrome扩展程序Postman发送此POST请求时:
POST /config/update HTTP/1.1
Host: localhost:9664
Cache-Control: no-cache
{ "title": "my title 33", "content": "my content" }
我收到了这个回复:
{
"title": null,
"content": null
}
当我调试post方法时,我发现mypost对象的所有属性都是null。为什么是这样?当我调用this.Request.Body.AsString()时,我得到了我期望的POST数据。
* 我将属性名称设置为小写,因为当我使用Response.AsJson(arg)将MyPost对象转换为JSON时,键是小写的。
答案 0 :(得分:0)
通过下面的橙色 Content-Type
application/json
设置为JSON (application/json)