2012-07-02 57 views
0

我對此非常陌生,並且正在爲不應該涉及編程的工作進行編程,所以請溫和。 :)如何在自動填充其他日期時使日期保持爲空?

這個應用程序是在MVC 3中,我有代碼,在依賴於第一個其他兩個日期的工作很好的代碼。但是,第一個日期是可以空的。在我添加此代碼之前,您可以創建一個項目,而不必填寫該字段。現在,如果該字段留空,則會炸燬。我究竟做錯了什麼?

[HttpPost] 
    public ActionResult Create(Procedure procedure) 
    { 
     if (ModelState.IsValid) 
     { 
      context.Procedures.Add(procedure); 
      if (procedure.Effective != DateTime.MinValue) 
      { 
       procedure.ScheduledReview = procedure.Effective.Value.AddMonths(-1); 
       procedure.UserReview = procedure.Effective.Value.AddMonths(-3); 
      } 
      context.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

     ViewBag.PossibleProTypes = context.ProTypes; 
     ViewBag.PossibleStatus = context.Status; 
     ViewBag.PossiblePendingActions = context.PendingActions; 
     ViewBag.PossibleOffices = context.Offices; 
     return View(procedure); 
    } 

回答

0

試試這個:

if (procedure.HasValue) 
    { 
     procedure.ScheduledReview = procedure.Effective.Value.AddMonths(-1); 
     procedure.UserReview = procedure.Effective.Value.AddMonths(-3); 
    } 

空日期時間不等於DateTime.MinValue,所以你if表達式爲真,則可能拋出一個NullReferenceException當您嘗試使用分配的值procedure.Effective.Value

+0

完美!非常感謝你! :) –

相關問題