C# SharePoint将项目添加到自定义列表结果为;无效的URL值。URL字段包含无效数据。请检查该值,然后重试“; 安装程序

C# SharePoint将项目添加到自定义列表结果为;无效的URL值。URL字段包含无效数据。请检查该值,然后重试“; 安装程序,c#,sharepoint,powershell,C#,Sharepoint,Powershell,我以编程方式将元素添加到自定义列表中,其中包含来自C#代码的自定义列: 补充资料 我制作的三个自定义列都是SPFieldText类型,因此与URL无关 我还使用PowerShell隐藏了默认标题字段: $titleField = $favoritesList.Fields.GetField("Title") $titleField.LinkToItem = $false $titleField.Required = $false $titleField.Hidden = $true $title

我以编程方式将元素添加到自定义列表中,其中包含来自C#代码的自定义列:

补充资料 我制作的三个自定义列都是
SPFieldText
类型,因此与URL无关

我还使用PowerShell隐藏了默认标题字段:

$titleField = $favoritesList.Fields.GetField("Title")
$titleField.LinkToItem = $false
$titleField.Required = $false
$titleField.Hidden = $true
$titleField.Update()

可以找到列表的XML架构。

首先,由于性能原因,您不应该使用
SPList.Items
集合。改用
SPList.AddItem
方法

其次,问题在于
Add
方法的参数。第一个参数应该是应该在其中创建列表项的文件夹的服务器相对URL。您需要从列表中获取文件夹,然后获取其url。
或者,您可以仅使用
favoritesList.AddItem()

检查列表变量(favoritesList)是否包含对您尝试访问的列表的引用

最好使用SPWeb.Lists.TrygetList()而不是使用web.Lists[]。如果找不到特定的列表,TrygetList将返回null,以便确保favoritesList变量引用了列表库

您还可以使用SPWeb.getlist()并检查execption


希望这有帮助。

你能发布你的列表结构吗?可能您有一个未填充的必填URL字段。是的,如果您能告诉我如何找到它:)在您的站点中,导航到列表定义并找到标记为必填的URL字段。我已添加了指向上述架构的链接。关于
Add()
方法的参数:我粘贴了错误的代码段。我实际上使用了重载,它接受零个参数。我现在已经更新了上面的内容。结果是,我在获取包含列表的
SPWeb
时使用了一个稍微不同的URL,从而导致无法获取正确的列表。
Microsoft.SharePoint.SPException:
Invalid URL value. A URL field contains invalid data. Please check the value and try again
$titleField = $favoritesList.Fields.GetField("Title")
$titleField.LinkToItem = $false
$titleField.Required = $false
$titleField.Hidden = $true
$titleField.Update()