当我尝试使用SPListItem时遇到问题。
这是代码:
string URL = "http://vstkmy36773/Lists/Permissions/DispForm.aspx?ID=6&ContentTypeId=0x0100F385377F0CAD6C438A23B301CE04E7BF"
using (SPSite cSite = new SPSite(URL))
{
using (SPWeb cWeb = cSite.OpenWeb())
{
// SPFile file = cWeb.GetFile(URL);
// SPListItem item = file.Item;
SPListItem item = cWeb.GetListItem(URL);
int id = item.ID;
item["Title"] = id+ " update and get " + URL;
}
}
输出
System.NullReferenceException:未将对象引用设置为对象的实例。 在Custom.Workflow.Activities.AddListItemPermissionAssigment.Execute(ActivityExecutionContext executionContext)
答案 0 :(得分:1)
从SharePoint的角度来看,这不是实际列表项的正确URL。它只是某个页面的URL,恰好显示该项目,这是不同的。
您将需要解析该URL,从中提取所需的信息(即列表和项ID),然后使用该信息查找该项:
var queryStrings = HttpUtility.ParseQueryString(url);
var listGuid = Guid.Parse(queryStrings["ListId"]);
var itemId = int.Parse(queryStrings["ID"]);
var item = web.Lists[listGuid].GetItemById(itemId);
如果您对实际商品网址的内容感到好奇,请打印item.URL
属性以查看该商品的实际内容。这就是您的URL需要包含的代码才能实际运行。