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

使用.NET Graph SDK更新SharePoint Online Choice Column值遇无效请求错误

解决SharePoint Online多选Choice列更新的InvalidRequest异常

你的问题出在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:15:39