通过Nullable Guid

时间:2015-08-21 19:00:32

标签: c# asp.net-mvc guid

我正在尝试传递一个可以为空的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);

我也在那条线上收到错误。我错过了什么?

2 个答案:

答案 0 :(得分:3)

Nullable类型不能分配给它们的非可空等价物。您需要使用Value属性提取基础值。

model.TrackingClassCode = pTETrackingClassID.Value;

由于 juharr 提及是他的评论,您将通过显式转换可为空的对象获得相同的结果。

model.TrackingClassCode = (Guid)pTETrackingClassID;

答案 1 :(得分:2)

试试这个:

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