使用.NET Graph SDK更新SharePoint Online Choice Column值遇无效请求错误
你的问题出在C#语法错误和字段配置检查上,以下是具体修正方案:
1. 修正代码中的数组写法
你在AdditionalData里直接用["Test2-A", "Test2-B", "Test3-C"]的写法不符合C#语法,需要显式实例化字符串数组或List对象:
var fieldValueSet = new FieldValueSet { AdditionalData = new Dictionary<string, object>() { {"Field1", "Test1"}, // 用string[]或List<string>实例化数组 {"Field2", new string[] {"Test2-A", "Test2-B", "Test3-C"}} // 也可以写成 {"Field2", new List<string> {"Test2-A", "Test2-B", "Test3-C"}} } }; await graphClient .Sites["{site-id}"] .Lists["{list-id}"] .Items["{listItem-id}"] .Fields .Request() .UpdateAsync(fieldValueSet);
2. 确认Choice列的配置
- 确保
Field2是允许多选的Choice列:在SharePoint列表设置中找到该字段,检查「允许多个选项」是否勾选。如果是单选列,直接传单个字符串值即可,不需要数组。 - 确认字段名是内部名称:不要使用显示名称,内部名称可在列表设置的字段编辑页面URL中查看(URL里
Field=xxx的xxx就是内部名称)。
3. 额外排查点
如果仍报错,检查以下内容:
- 确认
site-id、list-id、listItem-id取值正确,原代码里.Sites["{site-id}]]多了一个],需删除。 - 确保你的Graph API权限足够(需要
Sites.ReadWrite.All或对应列表的读写权限)。
内容的提问来源于stack exchange,提问作者Rubén
相关产品推荐
相关产品推荐

