簡體   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