ASP.net MVC 5不在日期之间选择

时间:2015-03-06 17:04:10

标签: asp.net asp.net-mvc linq

我正在创建一个预订应用程序。我需要在一段时间内检查免费点。每个预订都有一个ArrivalDate和一个LeaveDate,而spotId是这个表中的外键。

当我创建预订时,例如从2015年1月1日到2015年3月20日, 一段时间必须有可能预留这个地方!因此,根据用户在日历中填写的内容,它应该在用户选择的时间段内检查免费地点。

我该怎么做?我收到了一个查询,但它不起作用:

代码: RegisterController

        public ActionResult ShowAvailableSpots(DateTime ArrivalDate, DateTime LeaveDate)
    {
        var query = _campingspotrepository.SelectAvailableSpots(ArrivalDate, LeaveDate);
        ViewBag.CampingSpotId = new SelectList(query, "CampingSpotId", "SpotName");

        return View();
    }

我的存储库SelectAvailableSpots:

        public IQueryable SelectAvailableSpots(DateTime ArrivalDate, DateTime LeaveDate)
    {
        var query2 = db.Spots.Where(c => !db.Reservations.Any(r => DbFunctions.TruncateTime(r.ArrivalDate) >= DbFunctions.TruncateTime(ArrivalDate)
        && DbFunctions.TruncateTime(r.LeaveDate) <= DbFunctions.TruncateTime(LeaveDate)));

        return query2;  
    }

我的观点:

@Html.DropDownList("CampingSpotId", null, htmlAttributes: new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.CampingSpotId, "", new { @class = "text-danger" })

我的预订表

我的CampingSpot表

0 个答案:

没有答案