[英]How to send list of object to webapi c#?
我正在尝试以json-array格式将对象列表发送到webapi。 但是,在参数中它变为空。
现在,让我发布到目前为止已经尝试过的代码
[HttpPost]
[Route("~/api/visitsave")]
public IHttpActionResult Save(List<VisitDataModel> visitobj)
{
foreach (VisitDataModel visitobjs in visitobj) {
VisitManager obj = new VisitManager(visitobjs);
bool value = obj.Save();
}
return Ok();
}
这是我要传递的json数组,但是在参数visitobj中不起作用。
它的接收为null。 由于我是webapi和c#的新手,因此我为此感到困惑。
但是当我传递单个json对象时,我正在获取值,当我切换回列表时,它不起作用。
让我发布要发布的json数组:
{"visitobj":[{"Remarks":"test","UserID":193,"FindingsAtSite":"nothing","CheckInDate":"2017-02-01 12:00:00","CheckOutDate":"2017-02-01 12:00:00","VisitStatusID":1,"CreatedBy":192,"CreatedDateTime":"2017-02-01 12:00:00","Claim":{"TransportMode":1,"Date":"2017-02-01 12:00:00","FromLocation":"chennai","ToLocation":"re","Ticket":123.2,"Conveyance":123.5,"Lodge":234.0,"Meals":23}}]}
这是jsonresponse尝试发送给我的webapi的人,可以有人帮助我解决这个问题,但这个问题很棘手。 提前致谢!!
这是正常现象,因为您的合同不匹配。
将您的参数更改为以下内容,您的参数就可以了
public class Claim
{
public int TransportMode { get; set; }
public string Date { get; set; }
public string FromLocation { get; set; }
public string ToLocation { get; set; }
public double Ticket { get; set; }
public double Conveyance { get; set; }
public double Lodge { get; set; }
public int Meals { get; set; }
}
public class Visitobj
{
public string Remarks { get; set; }
public int UserID { get; set; }
public string FindingsAtSite { get; set; }
public string CheckInDate { get; set; }
public string CheckOutDate { get; set; }
public int VisitStatusID { get; set; }
public int CreatedBy { get; set; }
public string CreatedDateTime { get; set; }
public Claim Claim { get; set; }
}
public class VisiteRequest
{
public List<Visitobj> visitobj { get; set; }
}
或第二个选项,您必须将Json发送的对象更改为数组
[{"Remarks":"test","UserID":193,"FindingsAtSite":"nothing","CheckInDate":"2017-02-01 12:00:00","CheckOutDate":"2017-02-01 12:00:00","VisitStatusID":1,"CreatedBy":192,"CreatedDateTime":"2017-02-01 12:00:00","Claim":{"TransportMode":1,"Date":"2017-02-01 12:00:00","FromLocation":"chennai","ToLocation":"re","Ticket":123.2,"Conveyance":123.5,"Lodge":234.0,"Meals":23}}]
可能是您以错误的格式传递了json。 我有这样的API动作
[HttpPost]
[Route("sample")]
public IHttpActionResult SampleOp(List<SampleObj> smpJson)
{
foreach (var item in smpJson){
//Do Some Thing Here
}
return ok();
}
并将json数据作为
[{
"name":"name 1",
"address":"address 1",
"age":1
},
{
"name":"name 2",
"address":"address 2",
"age":2
}]
这是我的SampleObj
模态
public class SampleObj {
public string name { get; set; }
public string address { get; set; }
public int age { get; set; }
}
经过测试并在这里工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.