繁体   English   中英

需要ASP.NET MVC5日期时间吗?

[英]ASP.NET MVC5 Datetime required?

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

    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;
    }

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

用户何时发表评论,都会告诉我:“何时张贴”字段为必填字段。

我发现这很奇怪,因为我没有使用[Required]属性。

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

当所有值类型(包括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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM