我正在寻找一种方法来检测WebAPI帖子有效负载上提供的额外属性,这些属性与我期望的POCO不匹配。例如,这是一个输入对象:
public class Input
{
public string Name { get; set; }
}
控制器方法:
public void Post([FromBody]Input value)
如果客户端发送以下帖子有效负载:
{
"Name" : "Foo",
"Description" : "Bar"
}
这将触发我的控制器上的Post方法,并且将填充Name。我想知道描述已被发送但被忽略,因此我可以记录该事件服务器端,或通过响应头通知客户端他们正在发送额外数据。
答案 0 :(得分:1)
我认为这是可能的,但如果你想要一个通用的解决方案,你必须没有模型绑定并使用反射:
类别:
var ss = SpreadsheetApp.openById("1QARjdbtFpERRkP7Mw7Ud56plOygMzQawjQbXsbf9Hgw");
var mh1 = ss.getRange ("Helicopter Status!C4");
var mh2 = ss.getRange ("Helicopter Status!C5");
var hellcat1 = ss.getRange ("Helicopter Status!C6");
var hellcat2 = ss.getRange ("Helicopter Status!C7");
var form = FormApp.getActiveForm();
var item = form.addListItem();
var items = form.getItems();
var deleteold = items[2];
form.deleteItem(deleteold);
Utilities.sleep(200);
item.setTitle('Helicopters')
.setRequired(true)
.setChoices([
if(mh1 == 'Fine'){
item.createChoice('MH-9 #1'),
}
item.createChoice('MH-9 #2'),
item.createChoice('Hellcat #1'),
item.createChoice('Hellcat #2')
])
var items = form.getItems();
var movenew = items[5];
form.moveItem(movenew, 2)
有效载荷:
public class Input
{
public string Name { get; set; }
}
控制器方法:
{
"Name" : "Foo",
"Description" : "Bar"
}
对于上面的示例,extraContent将是一个包含“Description”的列表。如果你想要值,只需使用字典对象。