【问题标题】:Current date and time - Default in MVC razor当前日期和时间 - MVC razor 中的默认值
【发布时间】:2011-10-30 00:57:36
【问题描述】:

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

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

【问题讨论】:

  • 您显然必须完成此操作,但是对于来到这里的其他人,他们应该问自己服务器时间或客户端时间。下面的答案可能会产生非常不同的结果。

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 razor html-helper


【解决方案1】:

在从控制器返回模型之前,请将您的 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;}
}

【讨论】:

  • 这对我有用,除了我收到此错误“system.datetime.now 不能像方法一样使用”。在 DateTime 之后删除括号。现在为我解决了这个问题。
【解决方案2】:

如果你想在没有模型的视图上显示日期时间,只需这样写:

Date : @DateTime.Now

输出将是:

Date : 16-Aug-17 2:32:10 PM

【讨论】:

    【解决方案3】:

    您可以在模型上初始化 ReturnDate,然后再将其发送到视图。

    在控制器中:

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

    【讨论】:

    • 看起来@Jamie 和我同时回答。他的作品也是!同样的答案。
    【解决方案4】:

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

    class MyModel
    {
    
        public MyModel()
        {
            this.ReturnDate = DateTime.Now;
        }
    
        public date ReturnDate {get; set;};
    
    }
    

    【讨论】:

      【解决方案5】:

      .razor 文件中的日期

      <p>@DateTime.Today.toString()<p>

      【讨论】:

        猜你喜欢
        • 2020-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-26
        相关资源
        最近更新 更多