ASP.NET MVC3: применение оператора SELECT / WHERE из представления MVC - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть список элементов, содержащихся в viewbag ViewBag.RoomBookings

В качестве примера:

Я хочу, чтобы все заказы на номера с ViewBag.RoomBookings.RoomNo = 6 AND ViewBag.RoomBookings.Time < DateTime.Now AND ViewBag.RoomBookings.Time < DateTime.Now + 3600

Цикл прохода - НЕТ.

И это должно быть сделано в представлении, так как мне также нужен доступ ко всем остальным бронированиям номеров, чтобы заполнить расписание.

В качестве альтернативы, я думаю о хэш-списках?Где я мог бы перечислить это с 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"]); 

Но ни один из них не действителен.

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Вам необходимо привести переменную RoomBookingsTemp.Когда вы объявляете это непосредственно из ViewBag, это все еще динамический тип [подробности о viewbag] , и вы видите ошибку, что linq не может запрашивать / перебирать динамический тип.

Я не уверен, какой тип вы на самом деле используете, но попробуйте что-то вроде этого ...

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

или

List<RoomBooking> RoomBookingsTemp = ViewBag.RoomBookings;
0 голосов
/ 24 ноября 2011

Что не так с вашим вторым методом?Вы просто упускаете выбор.

// Some statements removed from where for clarity
var bookings = RoomBookingsTemp.Where(rb => rb.RoomNo == 6).Select(rb => rb);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...