ASP.NET 需要 MVC5 日期时间

本文关键字:日期 时间 MVC5 需要 NET ASP | 更新日期: 2023-09-27 17:55:17

我正在尝试在评论部分工作,我已经这样做了,以便用户可以发表评论,但我也想要一个时间戳。这就是我的模型的样子

    public class Suggestion
{
    public int Id { get; set; }
    [Required]
    [Display(Name = "Suggestion")]
    public string Comment { get; set; }
    public DateTime WhenPosted { get; set; }
    public Suggestion()
    {
        WhenPosted = DateTime.Now;
    }
}

如何执行此操作最终会导致用户必须输入日期,从而消除了拥有它的意义。

所以我做了一个看起来像这样的构造函数:

public Suggestion()
    {
        WhenPosted = DateTime.Now;
    }

这工作得很好,WhenPosted 变量保存正确的时间。

当用户要发表评论时,它如何告诉我:"发布时间"字段是必填字段。

我觉得这很奇怪,因为我不使用[Required]属性。

我知道我不能使用可空的日期时间?这如何允许我的用户不输入日期时间,但这也意味着我的最终在我的数据库中为 null,但我希望 DateTime 自动设置为发布时间。

ASP.NET 需要 MVC5 日期时间

所有值类型(包括DateTime)在回发到 MVC 控制器时都应具有一个值。

为了满足您的要求,我可能会做类似的事情

        private DateTime _date;    
        public DateTime Date
        {
            get {
                // by default the date was getting set to 1/1/0001 12:00:00 AM
                if (_date == null || _date.ToString() == "1/1/0001 12:00:00 AM")
                {
                    return _date = DateTime.Now;
                }    
                return _date; 
            }
            set {
                _date = value; 
            }
        }

如果您只是为该属性分配默认值,它应该可以正常工作。

private DateTime _date = DateTime.Now;    //default value assigned here.
public DateTime Date {
    get { return _date; }
    set { _date = value; }
}

如果要使用问题中的代码,另一种方法是往返属性值。

<form>元素中:

@Html.HiddenFor(m => m. WhenPosted)