传递可为空的 Guid

Passing a Nullable Guid

我正在尝试传递可为 null 的 Guid 并将其用作字段的默认值(如果它不是 Null,但我收到错误消息。

这是我的代码:

        [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);

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

试试这个:

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

可空类型不可分配给它们的不可空类型。您需要使用 Value 属性.

提取基础值
model.TrackingClassCode = pTETrackingClassID.Value;

正如 juharr 提到的他的评论,您将通过显式转换可为 null 的对象获得相同的结果。

model.TrackingClassCode = (Guid)pTETrackingClassID;