ASP.从MVC视图中应用SELECT / WHERE语句

本文关键字:SELECT WHERE 语句 应用 MVC 视图 ASP | 更新日期: 2023-09-27 18:15:43

我有一个包含在viewbag ViewBag.RoomBookings中的项目列表

例如:

我要ViewBag.RoomBookings.RoomNo = 6 AND ViewBag.RoomBookings.Time < DateTime.Now AND ViewBag.RoomBookings.Time < DateTime.Now + 3600所有的房间预订

循环通过是NO。

必须在视图上完成,因为我也需要访问所有其他房间预订来填充时间表。

或者,我在考虑哈希列表?我可以把它和RoomNo和Time一起列出来,这样就可以访问它了。但是我找不到任何好的文档来说明这一点。

我尝试了一些事情(只是为了测试一个有效的方法(这些不会遵循与上面相同的标准)):

      var RoomBookingsTemp = ViewBag.RoomBookings;
      var newlist = (from RoomOcc in RoomBookingsTemp where RoomOcc.EndDateTime < DateTime.Now select RoomOcc.RoomNo);
      var bookings = RoomBookingsTemp.Where(roombooking => DateCheckStart < roombooking.EndDateTime && DateCheckEnd > roombooking.StartDateTime && roombooking.RoomNo == RoomNo);
      var newlist = RoomBookingsTemp.Select(m => m["RentalNo"]); 

ASP.从MVC视图中应用SELECT / WHERE语句

您需要强制转换RoomBookingsTemp变量。当你直接从ViewBag中声明它时,它仍然是一个动态类型,你看到的错误是linq不能查询/迭代动态类型。

我不确定您实际使用的是什么类型,但请尝试这样做…

var RoomBookingsTemp = ViewBag.RoomBookings as List<RoomBooking>;

List<RoomBooking> RoomBookingsTemp = ViewBag.RoomBookings;

你的第二个方法有什么问题?你只是错过了选择。

// Some statements removed from where for clarity
var bookings = RoomBookingsTemp.Where(rb => rb.RoomNo == 6).Select(rb => rb);