2014-08-29 48 views
3

我發現了一個類似的問題here但這不適用於我的情況。請看下面的屏幕截圖。在「編輯」窗體中呈現數據時,除高亮顯示的日期字段外,所有數據均已正確設置爲控件。當我檢查這個元素時,我發現這個值在那裏,但由於某種原因它沒有在現場顯示。如何從Asp.Net MVC Razor將值設置爲HTML5日期字段?

這裏是我用來設置值到這個日期字段的代碼。我試過「yyyy-MM-dd」 & 「MM/dd/yyyy」格式但沒有工作。

<td>Joining Date</td> 
<td> 
@{ 
    if(Model.JoiningDate != null) 
    { 
     <input id="txtJoiningDate" type="date" style="width: 100%;" value="@String.Format("{0:MM/dd/yyyy}",Model.JoiningDate.Value)" /> 
    } 
    else 
    { 
     <input id="txtJoiningDate" type="date" style="width: 100%;" /> 
    } 
} 
</td> 

enter image description here

編輯
enter image description here

回答

8

爲什麼不是你只需要使用的HTML幫助,如下所示: -

@Html.TextBox("txtJoiningDate", Model.JoiningDate.Value ,"{0:yyyy-MM-dd}",new{ @style="width:100%", type="date" }) 
+0

我試着用'V'代替'v',但結果是一樣的:( – 2014-08-29 05:24:12

+0

@VPVerma ...然後嘗試我的第一個答案... – 2014-08-29 05:24:52

+0

如果我選擇第一個選項,是否可能使用jquery獲得這個控件的值(因爲這個值可以被用戶改變)?如果是,那我該怎麼做?因爲現在,我使用jquery獲得這個值,例如$(「#txtJoiningDate」) .val();這是使用此控件的編號 – 2014-08-29 05:30:06

0

你確定你試過YYYY-MM-DD格式?看看這個fiddle,正常工作在Chrome

<input id="txtJoiningDate" type="date" style="width: 100%;" value="2010-12-25" /> -> works 

<input id="txtJoiningDate" type="date" style="width: 100%;" value="2010/12/25" /> -> will not work 
+0

是的。請在編輯部分查看第二張圖片。即使在Chrome中,它也無法正常顯示。 – 2014-08-29 05:22:40

+0

我假設你的瀏覽器版本是相當新的。我能想到的其他事情可能是其他插件/ JS正在干擾。演示是否適合你? – Mrchief 2014-08-29 05:40:52

+0

是的,演示工程,但不是我的解決方案:( – 2014-08-29 05:48:34

1
@Html.EditorFor(x => x.JoiningDate) 

也模型:

[DisplayName("Joining date")] 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)] 
    public DateTime? JoiningDate { get; set; } 
2

使用HTML幫助

@Html.TextBox("txtJoiningDate", Model.JoiningDate.Value ,"{0:MM/dd/yyyy}") 

在型號

[DataType(DataType.Date)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")] 
public Nullable<System.DateTime> JoiningDate{ get; set; } 

這是我的作品

+0

你在哪裏提到輸入類型=「日期」? – 2015-04-15 09:57:45

1

對於Html5輸入類型=「日期」字段,值必須以格式「yyyy-MM-dd」指定。一旦你以這種格式設置它,你會看到在屏幕上分配的值。

相關問題