如何将对象列表发送到webapi c#?

如何将对象列表发送到webapi c#?,c#,asp.net-web-api,C#,Asp.net Web Api,我正在尝试以json数组格式向webapi发送对象列表。但是,在参数中,它将变为null 现在,让我发布到目前为止我已经尝试过的代码 [HttpPost] [Route("~/api/visitsave")] public IHttpActionResult Save(List<VisitDataModel> visitobj) { foreach (VisitDataModel visitobjs in vis

我正在尝试以json数组格式向webapi发送对象列表。但是,在参数中,它将变为null

现在,让我发布到目前为止我已经尝试过的代码

[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();
        }

这是我试图发送给我的webapi的jsonresponse。有人能帮我解决这个问题吗?这可能是个愚蠢的问题,但我正在努力解决这个问题。提前谢谢

这是正常行为,因为您的合同不匹配

将参数更改为以下值,您的参数就可以了

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; }
}

这是正常行为,因为您的合同不匹配

将参数更改为以下值,您的参数就可以了

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。我有这样一个API动作

[HttpPost]
[Route("sample")]
public IHttpActionResult SampleOp(List<SampleObj> smpJson)
{
      foreach (var item in smpJson){
          //Do Some Thing Here 
      }
      return ok();
}
这是我的
SampleObj
modal

public class SampleObj {
        public string name { get; set; }
        public string address { get; set; }
        public int age { get; set; }
    }

它已经过测试,在这里工作可能是您以错误的格式传递json。我有这样一个API动作

[HttpPost]
[Route("sample")]
public IHttpActionResult SampleOp(List<SampleObj> smpJson)
{
      foreach (var item in smpJson){
          //Do Some Thing Here 
      }
      return ok();
}
这是我的
SampleObj
modal

public class SampleObj {
        public string name { get; set; }
        public string address { get; set; }
        public int age { get; set; }
    }

它在这里测试并工作

否必须标记为数据合同和DataMembers是否必须标记为datacontract和DataMemberHow您收到一个对象?否必须标记为数据合同和DataMemberHow您收到一个对象吗?否必须标记为datacontract和DataMemberHow您收到一个对象吗?如何发送mutliple值出于某种原因,我似乎已将模型成员声明为
内部
,而不是
公共
,&我不会在Web api post中收到值,--将仅为null。。虽然,在使模型成员
公开
如何发送多个值时解决了这个问题,但出于某种原因,我似乎已将模型成员声明为
内部
,而不是
公开
,&我不会在Web api post中收到值,--将只是空值。。但是,在公开模型成员时解决了此问题