[英]mvc4 get date values from form
我正在建立一個結賬系統。 部分表格要求使用卡的到期日期。 這包括2個小文本框,1個月,1個年份。 我在我看來使用下面的代碼:
@Html.LabelFor(c => c.expiryDate)
@Html.HiddenFor(c => c.expiryDate.Day)
@Html.TextBoxFor(c => c.expiryDate.Month, new { @class = "ccDate" })
<span class="ccDateSep">/</span>
@Html.TextBoxFor(c => c.expiryDate.Year, new { @class = "ccDate" })
但是,當提交表單時,日期將一直顯示為01/01/0001。 所有其他領域都很好。
有任何想法嗎?
DateTime
結構是不可變的。 您不能只創建實例並更改其Day
, Month
或Year
。您應該直接綁定expiryDate
屬性,或者您必須在模型中為月和年值創建新屬性。 然后,您可以使用構造函數自己創建實例。
為了擴展Ufuk的答案,在過去這樣做的時候,我創建了日期,月份和年份的屬性,我將下拉列表綁定到客戶端。 然后在控制器中,我將值組合到一個有效的日期並填充屬性。 例如,對於包含DateOfBirth的類,我的模型可能看起來像這樣。
snip
public DateTime dob {get;set;}
public string dobDay {get;set;}
public string dobMonth {get;set;
public string dobYear {get;set;}
snip
我會將下拉列表綁定到dobDay,dobMonth和dobYear字段,然后在您的控制器中將它們重新組合成DateTime,如下所示:
DateTime temp = new DateTime(dobDay, dobMonth, dobYear);
model.dob = temp;
我不確定DateTime構造函數中的參數是否正確,但這是基本的想法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.