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