传递一个可空的Guid

本文关键字:Guid 一个 | 更新日期: 2023-09-27 18:09:13

我试图传递一个可空的Guid,并使用它作为一个字段的默认值,如果它不是空的,但我得到一个错误。

下面是我的代码:
        [HttpGet]
        public ActionResult Create(Guid? pTETrackingClassID)
        {
            PTETrackingClass model = new PTETrackingClass();
            if (pTETrackingClassID != null)
            {
                model.TrackingClassCode = pTETrackingClassID;
            }
            return View(model);
        }

在这一行

model.TrackingClassCode = pTETrackingClassID;

我得到这个错误:

不能隐式转换类型System.Guid?系统。Guid

然后我试了这个:

model.TrackingClassCode = new Guid(pTETrackingClassID);

,我也得到了一个错误。我错过了什么?

传递一个可空的Guid

可空类型不能赋值给它们的非可空类型。您需要使用Value属性提取底层值。

model.TrackingClassCode = pTETrackingClassID.Value;

正如juharr在他的注释中提到的,通过显式转换可空对象,您将得到相同的结果。

model.TrackingClassCode = (Guid)pTETrackingClassID;

试试这个:

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