2015-08-21 65 views
1

我想通過一個可空的Guid並將它用作字段的默認值,如果它不是空的,但我得到一個錯誤。通過一個可爲空的指針

這裏是我的代碼:

 [HttpGet] 
     public ActionResult Create(Guid? pTETrackingClassID) 
     { 
      PTETrackingClass model = new PTETrackingClass(); 
      if (pTETrackingClassID != null) 
      { 
       model.TrackingClassCode = pTETrackingClassID; 
      } 

      return View(model); 
     } 

在這條線

model.TrackingClassCode = pTETrackingClassID; 

我收到此錯誤:

cannot implicitly convert type System.Guid? to System.Guid

於是我嘗試這樣做:

model.TrackingClassCode = new Guid(pTETrackingClassID); 

我也在這一行上發生錯誤。我錯過了什麼?

+1

你的意思是做'model.TrackingClassCode = pTETrackingClassID.Value;'? –

回答

3

的可空類型不能分配給他們的非空的等價物。您需要使用Value屬性提取基礎值。

model.TrackingClassCode = pTETrackingClassID.Value; 

由於juharr提到是他的評論,你會得到通過明確地鑄造爲空的對象相同的結果。

model.TrackingClassCode = (Guid)pTETrackingClassID; 
+1

或明確地將它們轉換爲'model.TrackingClassCode =(Guid)pTETrackingClassID;' – juharr

+0

@juharr感謝您的評論。我會把這個添加到我的答案中。 – Kapol

2

試試這個:

if (pTETrackingClassID.HasValue) 
      { 
       model.TrackingClassCode = pTETrackingClassID.Value; 
      } 
+0

在編輯之前發生了downvote(它不是我):-) – Kapol