【发布时间】:2017-10-20 05:30:51
【问题描述】:
在 Nancy 中,有没有办法将 POST 请求的内容绑定到动态类型?
例如:。
// sample POST data: { "Name": "TestName", "Value": "TestValue" }
// model class
public class MyClass {
public string Name { get; set; }
public string Value { get; set; }
}
// NancyFx POST url
Post["/apiurl"] = p => {
// this binding works just fine
var stronglyTypedModel = this.Bind<MyClass>();
// the following bindings do not work
// there are no 'Name' or 'Value' properties on the resulting object
dynamic dynamicModel1 = this.Bind();
var dynamicModel2 = this.Bind<dynamic>();
ExpandoObject dynamicModel3 = this.Bind();
var dynamicModel4 = this.Bind<ExpandoObject>();
}
【问题讨论】:
-
你不能只做 Post["/apiurl"] = p => { 动态模型 = p;字符串名称=模型。名称;字符串 val = model.Value; }?
-
@Alexander,请发表您的评论作为答案,以便在到期时获得代表:)
-
感谢亚历山大的回复。 'p' 已经是动态类型,但我无法访问请求正文中的数据,因为它需要先反序列化。如果它是查询字符串或路由参数,我可以从“p”访问它,但在这种情况下,我需要从请求正文中反序列化 JSON 数据。
标签: c# .net model-binding nancy