2016-06-08 24 views
1

我在我的數據庫是這樣的:如何在ASP.NET MVC中模擬在線預訂?

public partial class Reservation 
{ 
    public int ReservationID { get; set; } 
    public System.DateTime Data { get; set;}// this has the date and the hour 
    public string User_Id { get; set; } 
    public string Service { get; set; } 
} 

爲了使新的預訂,客戶端必須引進日期,服務和小時。我想創建一個ComboBox,其中包含已選擇的日期可用的小時數。我正在考慮做出這樣的事情:一個包括所有小時數的列表,以查詢數據庫並選擇已經保留的小時數。然後從所有小時中減去已經保留的小時數,結果將在ComboBox之內。我到目前爲止所做的是IEnumerable SelectListItem,從上午10點到下午6點的所有時間和查詢給了我預留的時間,但我不知道它是否有效。我認爲「日期」是以前選擇的參數。

IEnumerable<SelectListItem> occupied = db.Reservation.Where(x => x.Data == date).Select(
    m => new SelectListItem 
    { 
     Value = m.Data.ToShortTimeString(), 
     Text = m.Data.ToShortTimeString() 
    } 
); 

如果這是正確的,我應該怎麼做下一步?如果不是,請提出一種替代方法。

+1

返回被佔領列表視圖作爲一個模型,然後用DropDownListFor – misha130

+0

使用它,但我需要返回到視圖僅選定日期的可用小時..這意味着,它是該日期的所有小時和佔用小時之間的減法。我怎樣才能做到這一點 ? – Amy

+0

由於您比較包含秒的完整日期,因此您只想比較日期和小時 –

回答

0

這裏是我是如何做到爲我們的項目之一:

  1. 生成對象List<OrderSchedulerViewModel>的集合,其中OrderSchedulerViewModel(INT的OrderId,DATATIME時間,枚舉狀態)。 enum Status{Free, Reserved, Unavailable}
  2. 從今天的日期和foreach循環獲取數據庫中的訂單用已存在的訂單填寫您的List。
  3. 向管理員/用戶顯示一張表格,他可以查看所有可用時間併爲他提供一種單擊可用時間的方法。 Onclick只需打開一個彈出窗口,他可以填寫訂單數據並保存。

enter image description here

相關問題