2013-08-02 51 views
3

一段時間以來,我一直試圖解決這個小問題。所做的研究只會讓我更困惑,有些嘗試不起作用。所以,如果你認爲你可以幫助我緩解我的痛苦,我會很感激!我剛剛創建了一個簡單的註冊頁面,只有一些細節,其中一個是出生日期,我寧願是一組dropdownlist而不是datepicker (因爲它是我想讓它變得簡單的移動設備:))。DropDownList值到DataType.Date模型(ASP.NET MVC 4)

這裏是代碼填充我的dropdownlists在我看來,頁面位:

<fieldset data-role="controlgroup" data-type="horizontal"> 
     <legend>D.O.B</legend> 
      @Html.DropDownList("Day", Enumerable.Range(1, 31).Select(i => new SelectListItem { Value = i.ToString(), Text = i.ToString()}), "Day") 
      @Html.DropDownList("Month", Enumerable.Range(1, 12).Select(i => new SelectListItem { Value = i.ToString(), Text = System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat.GetMonthName(i)}), "Month") 
      @Html.DropDownList("Year", Enumerable.Range(1900, 114).Select(i => new SelectListItem { Value = i.ToString(), Text = i.ToString()}), "Year") 
</fieldset> 

我想能值「地圖」從這裏到現在它看起來像這樣我的註冊模式:

[DataType(DataType.Date)] 
public DateTime BirthDate { get; set; } 

任何幫助或直接的答案將不勝感激。如果您需要更多信息,請隨時詢問。非常感謝你。

問候

回答

11

相反模型中的日期時間,你可以有三個整數

 public int Day { get; set; } 
     public int Month { get; set; } 
     public int Year { get; set; } 

,並在你看來,你會怎麼做

 @Html.DropDownListFor(model => model.Day, Enumerable.Range(1, 31).Select(i => new SelectListItem { Value = i.ToString(), Text = i.ToString()}), "Day") 
     @Html.DropDownListFor(model => model.Month, Enumerable.Range(1, 12).Select(i => new SelectListItem { Value = i.ToString(), Text = System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat.GetMonthName(i)}), "Month") 
     @Html.DropDownListFor(model => model.Year, Enumerable.Range(1900, 114).Select(i => new SelectListItem { Value = i.ToString(), Text = i.ToString()}), "Year") 

一旦你的控制器,你可以的使這3個整數中的日期時間並將它們存儲在數據庫中

DateTime date1 = new DateTime(year, month, day); 

如果您需要在表單和模型與MVC更多的指導,我建議你去通過這個ASP.NET MVC指南 - 這是相當全面:

http://www.asp.net/mvc/tutorials/hands-on-labs/aspnet-mvc-4-helpers,-forms-and-validation

+0

這可以打工,但那時我很困惑至於如何以格式DD/MM/YYYY格式在數據庫中添加所有三個值:嗯,可能需要對此做更多的研究。謝謝:) – Scur4

+1

一旦你得到你的控制器方法,你可以創建一個日期這三個整數,並將其作爲日期時間存儲在您的數據庫中..但是當在視圖中顯示它時,無論如何你都可以做到這一點,你喜歡在表格 – krilovich

+0

太好了,謝謝! :) – Scur4