C# Sharepoint CSOM - 获取 FieldValue 的显示名称
C# Sharepoint CSOM - Get the Display Name of a FieldValue
我正在尝试使用 C# Sharepoint CSOM 显示文件元数据的值(文件创建者、上次更新时间等)。
我创建了一个函数:
public static void PrintFileMeta(string path)
{
using (var context = GetContext())
{
File file = context.Web.GetFileByServerRelativeUrl(path);
var item = file.ListItemAllFields;
context.Load(file, f => f.ListItemAllFields);
context.ExecuteQuery();
foreach (string fieldName in item.FieldValues.Keys)
{
Console.Write(fieldName);
Console.WriteLine(item.FieldValues[fieldName]);
}
}
}
然而,这会打印元数据的内部名称,例如'Created_x0020_By' 而不是 'Created By'(或者元数据的显示名称恰好是什么)。有没有办法打印显示名称?我已经搜索和测试了一段时间,但一直未能找到任何可以解决问题的方法。
这是代码。
您需要从 item.ParentList
加载 Fields
集合,然后按 InternalName
:
搜索它
public static void PrintFileMeta(string path)
{
using (ClientContext context = GetContext())
{
File file = context.Web.GetFileByServerRelativeUrl(path);
var item = file.ListItemAllFields;
var fields = item.ParentList.Fields;
context.Load(file, f => f.ListItemAllFields);
context.Load(fields, include => include.Include(f => f.Id, f => f.InternalName, f => f.Title));
context.ExecuteQuery();
foreach (string fieldName in item.FieldValues.Keys)
{
Field field = fields.Where(f => f.InternalName == fieldName).First();
Console.Write(field.Title + ": ");
Console.WriteLine(item.FieldValues[fieldName]);
}
}
}
我正在尝试使用 C# Sharepoint CSOM 显示文件元数据的值(文件创建者、上次更新时间等)。
我创建了一个函数:
public static void PrintFileMeta(string path)
{
using (var context = GetContext())
{
File file = context.Web.GetFileByServerRelativeUrl(path);
var item = file.ListItemAllFields;
context.Load(file, f => f.ListItemAllFields);
context.ExecuteQuery();
foreach (string fieldName in item.FieldValues.Keys)
{
Console.Write(fieldName);
Console.WriteLine(item.FieldValues[fieldName]);
}
}
}
然而,这会打印元数据的内部名称,例如'Created_x0020_By' 而不是 'Created By'(或者元数据的显示名称恰好是什么)。有没有办法打印显示名称?我已经搜索和测试了一段时间,但一直未能找到任何可以解决问题的方法。
这是代码。
您需要从 item.ParentList
加载 Fields
集合,然后按 InternalName
:
public static void PrintFileMeta(string path)
{
using (ClientContext context = GetContext())
{
File file = context.Web.GetFileByServerRelativeUrl(path);
var item = file.ListItemAllFields;
var fields = item.ParentList.Fields;
context.Load(file, f => f.ListItemAllFields);
context.Load(fields, include => include.Include(f => f.Id, f => f.InternalName, f => f.Title));
context.ExecuteQuery();
foreach (string fieldName in item.FieldValues.Keys)
{
Field field = fields.Where(f => f.InternalName == fieldName).First();
Console.Write(field.Title + ": ");
Console.WriteLine(item.FieldValues[fieldName]);
}
}
}