我正在尝试传递一个可以为空的Guid并将其用作字段的默认值,如果它不是Null但我收到错误。
这是我的代码:
[HttpGet]
public ActionResult Create(Guid? pTETrackingClassID)
{
PTETrackingClass model = new PTETrackingClass();
if (pTETrackingClassID != null)
{
model.TrackingClassCode = pTETrackingClassID;
}
return View(model);
}
在这一行
model.TrackingClassCode = pTETrackingClassID;
我收到此错误:
无法隐式转换类型System.Guid?到System.Guid
然后我尝试了这个:
model.TrackingClassCode = new Guid(pTETrackingClassID);
我也在那条线上收到错误。我错过了什么?
答案 0 :(得分:3)
Nullable类型不能分配给它们的非可空等价物。您需要使用Value
属性提取基础值。
model.TrackingClassCode = pTETrackingClassID.Value;
由于 juharr 提及是他的评论,您将通过显式转换可为空的对象获得相同的结果。
model.TrackingClassCode = (Guid)pTETrackingClassID;
答案 1 :(得分:2)
试试这个:
if (pTETrackingClassID.HasValue)
{
model.TrackingClassCode = pTETrackingClassID.Value;
}