Search code examples
asp.net-mvcasp.net-mvc-3asp.net-mvc-2razorhtml-helper

Current date and time - Default in MVC razor


When the MVC view page with this textbox, loads , I would like to display current date and time by default. How can I do this? in razor.

  @Html.EditorFor(model => model.ReturnDate)

Solution

  • Before you return your model from the controller, set your ReturnDate property to DateTime.Now()

    myModel.ReturnDate = DateTime.Now()
    
    return View(myModel)
    

    Your view is not the right place to set values on properties so the controller is the better place for this.

    You could even have it so that the getter on ReturnDate returns the current date/time.

    private DateTime _returnDate = DateTime.MinValue;
    public DateTime ReturnDate{
       get{
         return (_returnDate == DateTime.MinValue)? DateTime.Now() : _returnDate;
       }
       set{_returnDate = value;}
    }