2016-11-29 51 views
0

Theres是一個讓我感到厭煩的東西。TextBoxFor vs EditorFor在MVC中的日期

在同一頁上,我從綁定的數據庫中的日期使用此:

@Html.TextBoxFor(t => t.dossier_ele.Date_depart, "{0:dd-MM-yyyy}") 

使用一個在這裏,我不能在回發CONTROLER retreive值...

但是,如果我使用下面的一個:

@Html.EditorFor(t => t.dossier_ele.Date_depart, new { DisplayMode = "{0:dd-MM-yyyy}" }) 

然後一切都很好的程序明智;我收回我的價值很好,但!它不會在此格式化日期,如果可能的話,我也希望能爲此提供幫助。

其實,我想,無論之間:第一個回發正確,或正確的一個Seconde系列格式...

請注意,第一個例子是TextBoxFor,第二個是一個EditorFor和我的VAR Date_depart從正在添加數據庫,所以我不能將其應用於任何標籤...(可以嗎?)

在我的模型,這是表:

public dossiers dossier_ele { get; set; } // I can access in model.dossier_ele.Date_depart 

dossiers它是一個包含許多領域

大概不會有用的,但在這裏,我整個模型的實體框架數據庫對象:

public class FormulaireMod 
{ 
    DateTime reference = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); 

    public string Fiche { get; set; } 

    public E_Ele eleveJade { get; set; } 
    public E_Freq Frequentation { get; set; } 
    public string Année { get; set; } 

    public string tel { get; set; } 

    public string user { get; set; } 


    public int dos_TypeEntrevu { get; set; } 


    public int dos_raisonDepart { get; set; } 

    public dossiers dossier_ele { get; set; } 

    public ApplicationMVC donneApp { get; set; } 

    public suivis suivis_ele { get; set; } 

    public dossiers_pro projet_ele { get; set; } 
} 
+0

這裏是你的答案http://stackoverflow.com/a/7462514假設你在美國,你必須指定格式爲「yyyy-mm-dd」,默認的模型綁定才能用於你的DateTime模型屬性。 – Zack

+1

可能的重複[ASP.NET MVC期望使用DateTime以便模型綁定可以正常工作?](http://stackoverflow.com/questions/7462474/what-formats-does-asp-net-mvc- expect-for-datetime-so-the-the-model-binding-will) – Zack

+0

請注意,在英文中,當提及自己時,字母I應該大寫。出於其他原因,當您編輯您的問題時,我已經開始編輯您的問題。另外,標點通常緊接在前面的詞後面,沒有空格。 –

回答

2

嘗試在你的模型中定義的日期格式。 像這樣:

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
public DateTime Date_depart{ get; set; } 

使用@Html.TextBoxFor(t => t.dossier_ele.Date_depart)在你的頁面。

+0

我想使用您的標記,但var Date_depart直接從數據庫中來,我不認爲我可以在自動生成的字段上應用這樣的標籤 –

+0

@Antoine你是什麼意思直接從數據庫中來的? 'Date_depart'是表示數據庫中表的類中的一個屬性。 –

+0

耶看到我的編輯它的解釋 –