You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SharePoint中ListItem字段值打印显示类型而非实际内容的问题

问题

我有一个声明为ListItem类型的变量contractItem,已经通过SQL流程完成数据填充,写回SQL的操作也完全正常,所有信息都符合预期。但当我想把contractItem里的特定值写入日志文件时,用下面两种代码:

String sTxt = "Subject = " + contractItem.FieldValues["Subject"].ToString();

或者

String sTxt = "Subject = " + contractItem.FieldValues["Subject"];

得到的结果都是"Subject = Microsoft.SharePoint.Client.FieldLookupValue",而不是我预期的"Subject = Documentation e-content 365",这哪里出问题了?

分析与解决方法

嗨,这问题其实很常见,原因是你访问的Subject字段是SharePoint的查找字段(Lookup Field),它对应的类型不是普通的字符串,而是Microsoft.SharePoint.Client.FieldLookupValue对象。

你直接调用ToString()或者直接拼接字符串时,默认会调用这个对象的基类ToString方法,而它返回的就是类型的完整名称,不是字段实际存储的显示值。

要拿到你想要的内容,得访问FieldLookupValue的专属属性:

  • 如果要获取显示文本,用LookupValue属性
  • 如果要获取对应记录的ID,用LookupId属性

给你写个修正后的示例代码:

// 先把FieldValues里的值转成FieldLookupValue类型
var subjectLookup = contractItem.FieldValues["Subject"] as Microsoft.SharePoint.Client.FieldLookupValue;
// 用空合并运算符处理可能的空值情况,避免空引用异常
String sTxt = "Subject = " + (subjectLookup?.LookupValue ?? "无对应值");

这样就能得到你预期的"Subject = Documentation e-content 365"啦。

内容的提问来源于stack exchange,提问作者user86019

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 16:35:13