当前日期和时间 - 默认为MVC剃须刀

问题描述 投票:14回答:4

当带有此文本框的MVC视图页面加载时,我希望默认显示当前日期和时间。我怎样才能做到这一点?用剃刀。

  @Html.EditorFor(model => model.ReturnDate)
asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 razor html-helper
4个回答
21
投票

在从控制器返回模型之前,将ReturnDate属性设置为DateTime.Now()

myModel.ReturnDate = DateTime.Now()

return View(myModel)

您的视图不是在属性上设置值的正确位置,因此控制器是更好的位置。

您甚至可以拥有它,以便ReturnDate上的getter返回当前日期/时间。

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

10
投票

您可以在将模型发送到视图之前在模型上初始化ReturnDate。

在控制器中:

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

    return View(viewModel);
}

7
投票

这不是默认构造函数的用途吗?

class MyModel
{

    public MyModel()
    {
        this.ReturnDate = DateTime.Now;
    }

    public date ReturnDate {get; set;};

}

6
投票

如果要在没有模型的情况下在视图上显示日期时间,只需写下:

Date : @DateTime.Now

输出将是:

Date : 16-Aug-17 2:32:10 PM
© www.soinside.com 2019 - 2024. All rights reserved.