我正在尝试向Visual Studio中的控制器类发送POST api调用。目前我有一个将验证输入的类,
public class InReport
{
public IEnumerable<IMatchingRule> Rules { get; set; }
}
public interface IMatchingRule
{
int Page { get; set; }
}
public class RuleEquals : IMatchingRule
{
public int Page { get; set; }
}
public class RuleRange : IMatchingRule
{
public int Page { get; set; }
}
public class RuleGreaterThan : IMatchingRule
{
public int Page { get; set; }
}
public class RuleLessThan : IMatchingRule
{
public int Page { get; set; }
}
在POSTMAN中我试图发送以下内容:
{
"Rules" :
[
"RuleGreaterThan"
{
"Page" : 10
},
"RuleLessThan"
{
"Page" : 20
}
]
}
但我一直在POSTMAN中收到错误响应,如下所示: “消息”:“转换值时出错\”RuleGreaterThan \“键入'Admin.Inbound.IMatchingRule'。
当我更改了ienumerable以传递“RuleGreaterThan”类而不是接口时,它工作正常。
问题:
传递接受ienumerable<INTERFACE>
的POST调用的正确方法是什么?