代码之家  ›  专栏  ›  技术社区  ›  Piotr Kula David Boike

MVC匿名JSON返回错误的布尔值?

  •  2
  • Piotr Kula David Boike  · 技术社区  · 10 年前

    我正在使用RavenDB实现一个完整的日历。

    我做了一个简单的匿名模型返回。

    public JsonResult GetHolidays()
    {
        return Json(Session.Query<Models.Holiday>().Select(d => new 
            { 
              id = d.Id, 
              title = d.Name, 
              start = d.DateStart, 
              end = d.DateEnd,
              allDay = true
            }), JsonRequestBehavior.AllowGet);
    }
    

    我设定了 allDay true 但我的结果是 false 。(我将浏览器指向控制器/Home/GetHolidays,这是结果字符串,我以前多次这样做,以确保JSON正确)

    [{"id":"holidays/97","title":"Piotr Test 2 - 1","start":"\/Date(1405284740420)\/","end":"\/Date(1405543940420)\/","allDay":false},{"id":"holidays/98","title":"Piotr Test 10 - 26","start":"\/Date(1404593542266)\/","end":"\/Date(1407703942266)\/","allDay":false},{"id":"holidays/99","title":"Piotr Test 3 - 0","start":"\/Date(1405198343713)\/","end":"\/Date(1405457543713)\/","allDay":false}]
    

    enter image description here

    我已经这么多次了。为什么结果是 假的 ?

    即使我把它设置为 假的 它会留下来 假的 。我清除了缓存并多次重新启动。不确定为什么会发生这种情况。有人知道我做错了什么吗?

    2 回复  |  直到 10 年前
        1
  •  3
  •   Ayende Rahien    10 年前

    RavenDB不提供从索引中选择用户提供的值的方法。 您的查询试图在查询期间进行(非常简单,但仍然)计算,RavenDB不支持这一点。 您可以在查询从RavenDB返回后添加该属性。

        2
  •  1
  •   Piotr Kula David Boike    10 年前

    不完全确定这会如何影响匿名类型,但您 必须 使用 .ToList() 查询RavenDB会话后。

    这就像是从数据库模型中产生/继承的匿名类型?不知道如何解释这种行为。

    public JsonResult GetHolidays()
    {
        return Json(Session.Query<Models.Holiday>()**.ToList()**.Select(d => new 
            { 
              id = d.Id, 
              title = d.Name, 
              start = d.DateStart, 
              end = d.DateEnd,
              allDay = true
            }), JsonRequestBehavior.AllowGet);
    }
    

    enter image description here