2016-05-06 26 views
0

我試圖將日期保存到數據庫,但在參數startDate下面出現一條紅色線條,格式如下:2016-05-06。它可以工作,如果我這樣硬編碼參數:StartProject = new DateTime(2016-05-06)。爲什麼我得到這個參數的錯誤?嘗試寫入數據庫時​​未接受參數值

當我指向紅線時出現以下錯誤消息:Cannot convert from 'System.DateTime' to 'Long'

這是在動作控制器

public ActionResult CreateProjectResource(DateTime startDate, DateTime endDate) { 
.... 
      var project = new Project 
      { 
       Name = projectName, 
       StartProject = new DateTime(startDate), 
      }; 

      db.Projects.Add(project); 
      db.SaveChanges(); 
.... 
+0

它必須是'新的DateTime(2016,05,06)'(構造函數接受年月3個INT值和天)。但是你爲什麼使用它?當然你只是想'StartProject = startDate'? –

+0

使用格式將日期時間的註釋放入Project類的StartProject屬性中。我希望這可以修復這個問題 –

+0

@StephenMuecke OK,ASP.NET MVC中有沒有可以轉換的功能? –

回答

0

至於有關MSDN文檔,DateTime的代碼沒有一個構造函數一個DateTime作爲參數的一部分,所以編譯器將嘗試使用唯一的構造帶有一個參數,即DateTime(Int64)並且預計有刻度,但因爲DateTime不能轉換爲long,所以有一個錯誤消息。

var project = new Project 
     { 
      Name = projectName, 
      StartProject = startDate 
     }; 

你並不需要創建一個新的DateTime對象,因爲DateTime是不可變的:要麼按如下方式使用它。

,或者如果你真的想創建一個新的日期時間如下:

var project = new Project 
     { 
      Name = projectName, 
      StartProject = new DateTime(startDate.Ticks) 
     }; 
相關問題