2014-03-24 23 views
3

我想在我的asp.net mvc 5應用程序中設置文本區域的默認值。我有一個字段在我的患者模型,看起來像這樣:在mvc中創建表單的默認值

[Display(Name = "Date of Birth")] 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
    [Required] 
    public DateTime DateOfBirth { get; set; } 

,我想這個字段的默認值設置爲當前日期。 現在顯示此表格:http://scr.hu/11m6/lf9d5。 使用構造並在其設置出生日期的價值我已經嘗試:

public Patient() 
    { 
     DateOfBirth = DateTime.Now; 
    } 

,但它沒有任何效果。我也嘗試編輯我的看法.cshtml文件到這:

@Html.EditorFor(model => model.DateOfBirth, new { @value = "2014-05-05" }) 

但它也沒有效果。有沒有人知道這個解決方案?

+2

添加控制器代碼 –

+0

這是非常奇怪的是,這是行不通的。我只是拼湊了一個真正的快速測試。我創建了一個Patient.cs,將你的屬性放在它上面,添加了你的構造函數,並搭建了一個Controller和View,當視圖出現時它在DateOfBirth字段中包含今天的日期。 –

+0

http://pastebin.com/4f3arE2d - 控制器。 –

回答

10

您應該創建一個Patient類的實例,並將其傳遞給您的Create操作中的視圖。在你的案例視圖模型沒有設置,所以它不會輸入Patient類的構造函數,也不會使用DateTime.Now值來顯示。

嘗試從改變你的Create操作方法:

// GET: /Patient/Create 
    public ActionResult Create() 
    { 
     return View(); 
    } 

到:

// GET: /Patient/Create 
    public ActionResult Create() 
    { 
     var patient = new Patient(); 
     return View(patient); 
    } 
+1

情況就是這樣。謝謝:) –

+2

一年後,它仍然有效。 – 2015-06-04 19:52:06