设置
我正在使用 C# 代码中的自定义列以编程方式将元素添加到自定义列表中:
// Get the list
var context = SPContext.Current;
var web = context.Site.RootWeb;
web.AllowUnsafeUpdates = true;
var favoritesList = web.Lists["Favoritter"];
// Check if new item already exists
var query = new SPQuery
{
Query = string.Format(
"<Where>" +
"<And>" +
"<Eq><FieldRef Name='Brugernavn'/><Value Type='Text'>{0}</Value></Eq>" +
"<And>" +
"<Eq><FieldRef Name='Fagomr_x00e5_de'/><Value Type='Text'>{1}</Value></Eq>" +
"<Eq><FieldRef Name='N_x00f8_gletalsnummer'/><Value Type='Text'>{2}</Value></Eq>" +
"</And>" +
"</And>" +
"</Where>", GetUserName(false), omraade, noegletalsId)
};
var items = favoritesList.GetItems(query);
if (items.Count > 0)
return false;
// Otherwise add the new item
var favorite = favoritesList.Items.Add();
favorite["Brugernavn"] = GetUserName(false);
favorite["Fagomr_x00e5_de"] = omraade;
favorite["N_x00f8_gletalsnummer"] = noegletalsId;
favorite.Update(); // <--- THIS LINE THROWS EXCEPTION
web.AllowUnsafeUpdates = false;
return true;
问题
当我Update()
对新项目执行命令时,会引发以下异常:
Microsoft.SharePoint.SPException:
Invalid URL value. A URL field contains invalid data. Please check the value and try again
附加信息
我创建的三个自定义列都是类型SPFieldText
,因此与 URL无关。
我还使用 PowerShell 隐藏了默认的 Title 字段:
$titleField = $favoritesList.Fields.GetField("Title")
$titleField.LinkToItem = $false
$titleField.Required = $false
$titleField.Hidden = $true
$titleField.Update()
可以在此处找到列表的 XML 模式。