我不是VB开发人员,而是试图帮助同事。
尝试使用Web API 2.0和VB来接受JSON POST,然后将其作为自定义对象进行映射。
VS 2013中包含的模板包含POST示例子例程但不返回。我的尝试不会通过rest客户端(postman)发布JSON对象时创建值,然后当然返回null。设置标头,接受Application / JSON和RAW JSON HTTP POST。下面是我对包含的示例控制器所做的更改,我添加了该类。我的理解是Web API应该能够将发布的JSON对象映射到自定义类并处理所有序列化。我显然错过了一些东西。
Public Function PostValue(<FromBody()> ByVal value As Value)
Return value
End Function
注意:值是带有2个公共字段的简单类
Public Class Value
Public firstName As String
Public lastName As String
End Class
答案 0 :(得分:0)
每当您将JSON对象发布到Web api时,控制器会自动将键映射到Model属性,并在收到JSON对象时成功,它将被视为keyvalue对,其中键作为Model属性名称和值是否包含像
那样的价值使用Javascript:
var data= {
firstName: $("#Name").val(),
lastName: $("#lName").val()
};
//Convert javascript object to JSON object
var DTO = JSON.stringify(data);
$.ajax({
url: 'api/product', //calling Web API controller product
cache: false,
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: DTO,
dataType: "json",
success: function (returnedData) {
$.each(object, function (key, val) {
// do anything with your key val pair});
}
});
控制器:在控制器中你会看到_mode
l在帖子上填满你通过json对象发送的数据:firstName和lastName属性被填充
Public function PostData(_model as Value)
Return Json(_model)
End Function