2015-06-11 78 views
2

假設我在我的網站上有一個評論部分,它存儲在數據庫中。當我添加一條新評論時,我希望看到誰添加了它,以及他/她在哪個日期/時間發佈了它。Asp.net mvc 5添加時間戳到什麼時候被添加?

不知道我該怎麼辦,並做到這一點。任何人都可以將我推向正確的方向?

我知道我可以做到這一點。 public DateTime Time { get; set; } 怎麼會最終與用戶輸入他自己的日期,我需要是自動的。

這裏是我試過的模型,根本不能編譯,而是產生Error 3 The type name 'Now' does not exist in the type 'System.DateTime'

public class Suggestion { 
    public int Id { get; set; } 
    public string Comment { get; set; } 
    public DateTime.Now Time { get; set; } 
} 

這是錯誤我得到Error 3 The type name 'Now' does not exist in the type 'System.DateTime'

+0

將屬性添加到您的模型並使用'DateTime.Now()'? – Claies

+0

該問題太寬泛無法回答,並且您沒有發佈任何代碼作爲參考,如果您遵循關於MVC CRUD操作的基礎知識,則可能會得到您正在查找的答案:http://www.asp.net/mvc/overview /入門/入門/使用ef-using-mvc /實現-basic-crud-functional-with-the-entity-framework-in-asp-net-mvc-application – JOBG

+0

在你的系統中是否有datetime屬性「評論模式」?如果是這樣,只需在屬性值中添加當前系統日期時間(DateTime.Now),否則必須擴展您的評論模型以存儲日期時間數據。 –

回答

1
public class Suggestion { 
    public int Id { get; set; } 
    public string Comment { get; set; } 
    public DateTime Time { get; set; } 
} 

Suggestion s = new Suggestion(); 
s.Time = DateTime.Now; 
0

兩個可能的選擇:

  1. 當您定義表來在數據庫中存儲註釋添加新列以存儲日期時間wh行已創建。給它默認值。例如在Sql Server中,您可以使用getdate()作爲默認值。此方法的優點是,您無需編寫額外的C#代碼以將值設置爲WhenCreated列:

CREATE TABLE [dbo].[Coments](
    [Id] [int] NULL, 
    [Comment] [nvarchar](50) NULL, 
    [WhenCreated] [datetime2](7) NOT NULL DEFAULT getdate() 
) 
  • 如果你想要做的是,在C#中你可以使用DateTime.Now
  • public class Suggestion { 
         public int Id { get; set; } 
         public string Comment { get; set; } 
         public DateTime WhenCreated { get; set; } 
        } 
    
        var n = new Suggestion(); 
        n.WhenCreated = DateTime.Now; 
    
    +0

    但爲了使建議I類必須在另一個類的新實例,是不是會創造我的DB兩個表? – Carlssonthepirate

    +0

    你是什麼「是在另一個類」是什麼意思? – vmg

    +0

    @Carlssonthepirate這是一個簡單的例子,如果你已經有其持有的其他數據用戶填寫的類的實例,只需在該實例更新屬性.... – Claies

    3

    如果您希望它每次都自動運行,您應該在構造函數中設置WhenCreated。這樣你就不必記得把它放在任何地方。

    public class Suggestion 
    { 
        public DateTime WhenCreated { get; set; } 
        /* other props */ 
    
        public Suggestion() 
        { 
        WhenCreated = DateTime.Now; 
        } 
    } 
    

    補水時從數據庫中記錄一個SuggestionWhenCreated會的EntityFramework,或者你使用任何持久層進行更新。這發生在構造函數被調用後,所以無論你在那裏有什麼初始值都不重要。當您的應用程序創建新的Suggestion時,WhenCreated字段將自動設置爲Now。

    注意:DateTime.Now返回服務器時區的當前日期和時間。您可能需要爲您的用戶處理本地時區的翻譯,如果是這種情況,則可以使用DateTime.UtcNow來獲取UTC時間,以便將來更易於本地化(不會使時間翻倍/丟失一小時在夏季時間移動)

    0

    我解決了這個問題,這樣

    public class Time 
    { 
        private DateTime _date = DateTime.Now; 
    
        public int ID { get; set; } 
    
        public DateTime DateCreated 
        { 
         get { return _date; } 
         set { _date = value; } 
        } 
    
    } 
    
    0

    你有你想要做什麼是正確的想法,你只是不知道這樣做的方式。

    如果你有一個你想要在對象創建上設置的值,那麼完成這個工作的最好的地方是在對象的默認構造函數中。

    每次通過調用new關鍵字創建對象時,程序都會調用默認構造函數。

    所以,回到你的問題,來完成你想做什麼,你只需要簡單地做這樣的事情:

    public class YourClass() 
    { 
        public DateTime CreatedAt { get; set; } 
    
        public YourClass() 
        { 
         CreatedAt = DateTime.Now;  
        } 
    } 
    

    快樂創新!