C# Request.CreateResponse将空白数据返回给邮递员
我在尝试使用post请求调用web api时遇到了一个问题,返回了一个空数组 我的方法是: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: 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; }
}