c# - Request.CreateResponse向 postman 返回空白数据

标签 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<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);
    }

当我调试 transactions 变量时,我在集合中看到两个对象。 我对 postman 的回复是

[
    {},
    {}
]

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

最佳答案

好吧,在把头撞在 table 上几个小时后,我发现我用了 [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; }    

}

在这种情况下这是错误的......

感谢您的阅读!

关于c# - Request.CreateResponse向 postman 返回空白数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20543122/

相关文章:

c# - 更改动态组合框中组合框项的文本样式

c# - 如何在单个存储过程中从多个表中获取数据?

c# - 为什么尾随 %20(在本例中为有效数据)会终止 asp.net mvc 路由

c# - 捕获/跟踪对某个 url 的请求 - iis

c# - 谁在 C# 中调用 Main() 方法? Main()方法异常时如何退出应用程序?

c# - Entity Framework - 对业务层需求的意见

c# - JSON 自动完成,不显示结果

c# - Google chrome 在后续调用中丢失 MVC Auth Cookie(Set-Cookie 指令)

ios - 通过 iOS 应用程序发送 Facebook 消息(在后台)

javascript - 使用 NodeJS 从 url 下载大文件时服务器崩溃