因此,我闪亮的新“单页应用程序”由于似乎是由以下 API 调用引起的 500 错误而使自己陷入困境:/api/fuel/?_=123123123123
. 这让我感到非常惊讶,因为我无法想象为什么应用程序一开始会进行这样的 API 调用;我的控制器上的任何地方都没有这样的参数,我当然不建议任何人要求该表单的 URL。
当页面加载其视图模型时会发生错误。它应该从数据库中加载项目,并通过 ajax 调用将它们作为 JSON 分流回 Knockout.js,以便在某处陷入某些 HTML;有很多代码涉及,我几乎没有写,所以......
有没有人见过这个?有谁知道这个长得可笑的数字是从哪里来的,为什么它会被添加到我的 URL 上?这就是我要找的机器人吗?
更新:
我破解了打开的 Fiddler,看起来问题可能是 A)与传递的参数无关(是会话 ID 还是验证令牌或类似的废话?)。我得到的 500 响应还包括一些关于他们如何只需要无参数构造函数的 gobbledygook。看起来我可能需要再看看我的模型?
更新 2:
好吧,也许你们知道这即将到来,但我不敢相信是什么解决了这个问题:显然,Web API 不喜欢你从 IOrderedQueryable(或类似的东西)中选择 .Select();我在 .OrderByDescending() 之后添加了 .AsEnumerable() ,突然间一切都变得美好了。
return db.FuelItems
.Where(f =>
f.UserId == cachedUserId
//&& f.Date >= startDate
//&& f.Date < endDate)
)
.OrderByDescending(f => f.Date)
.AsEnumerable()
.Select(f => new FuelItemDto(f));