Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Request.CreateResponse将空白数据返回给邮递员_C#_Asp.net Mvc_Request_Asp.net Web Api - Fatal编程技术网

C# Request.CreateResponse将空白数据返回给邮递员

C# Request.CreateResponse将空白数据返回给邮递员,c#,asp.net-mvc,request,asp.net-web-api,C#,Asp.net Mvc,Request,Asp.net Web Api,我在尝试使用post请求调用web api时遇到了一个问题,返回了一个空数组 我的方法是: // POST: Api/v1/transaction/ [HttpPost] public HttpResponseMessage Post(string user) { var userId = new Guid(user); var transactions = new Collection<TransactionDataTransf

我在尝试使用post请求调用web api时遇到了一个问题,返回了一个空数组

我的方法是:

 // POST: Api/v1/transaction/
    [HttpPost]
    public HttpResponseMessage Post(string user)
    {

        var userId = new Guid(user);

      var  transactions = new Collection<TransactionDataTransferObject>();

        try
        {
            var seller = _databaseContext.Sellers.Single(s => s.Id == userId);
            var sellerMedias = _databaseContext.Medias.Where(m => m.TakenBy.Id == seller.Id);

            foreach (var sellerMedia in sellerMedias)
            {

                var allLogsForMedia = _databaseContext.Logs.Where(l => l.ObjectReferenceId == sellerMedia.Id);

                foreach (var logMedia in allLogsForMedia)
                {
                    var transaction = new TransactionDataTransferObject
                        {
                            Date = logMedia.DateTimeInUtc,
                            Amount = sellerMedia.PriceInSek,
                            MediaName = sellerMedia.FileName,
                            UserName = seller.FirstName + " " + seller.LastName
                        };

                    transactions.Add(transaction);
                }
            }
        }

        catch (Exception exception)
        {

            return Request.CreateErrorResponse(HttpStatusCode.NotFound, exception);
        }

        return Request.CreateResponse(HttpStatusCode.OK, transactions);
    }

我做错了什么?我发送的数据在哪里?

好的,我在表格中花了几个小时才发现我使用了 [DataContract]作为ViewModel、TransactionDataTransferObject上的筛选器

像这样:

[DataContract]
public class TransactionDataTransferObject 
{
    [Display(Name = "Date")]
    public DateTime Date { get; set; }

    public string MediaName { get; set; }

    public Guid MediaId { get; set; }

    public string UserName { get; set; }

    public Guid UserId { get; set; }

    [Display(Name = "Description")]
    public string Discriminator { get; set; }

    [Display(Name = "Amount")]
    public decimal Amount { get; set; }    

}
在这种情况下,这是错误的


谢谢你的阅读

这对我有帮助。在我的例子中,我需要将
[DataMember]
添加到我想要序列化的属性中。
[DataContract]
public class TransactionDataTransferObject 
{
    [Display(Name = "Date")]
    public DateTime Date { get; set; }

    public string MediaName { get; set; }

    public Guid MediaId { get; set; }

    public string UserName { get; set; }

    public Guid UserId { get; set; }

    [Display(Name = "Description")]
    public string Discriminator { get; set; }

    [Display(Name = "Amount")]
    public decimal Amount { get; set; }    

}