Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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)
like image 583
ZVenue Avatar asked Aug 18 '11 18:08

ZVenue


3 Answers

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;}
}
like image 94
Jamie Dixon Avatar answered Nov 20 '22 12:11

Jamie Dixon


If you want to display date time on view without model, just write this:

Date : @DateTime.Now

The output will be:

Date : 16-Aug-17 2:32:10 PM
like image 29
Tink Avatar answered Nov 20 '22 12:11

Tink


You could initialize ReturnDate on the model before sending it to the view.

In the controller:

[HttpGet]
public ActionResult SomeAction()
{
    var viewModel = new MyActionViewModel
    {
        ReturnDate = System.DateTime.Now
    };

    return View(viewModel);
}
like image 10
Lee DeLapp Avatar answered Nov 20 '22 13:11

Lee DeLapp