1

我在尝试使用 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)

4

1 回答 1

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);

如果您对实际的项目 URL 感到好奇,请打印出该item.URL属性以查看该项目的实际情况。这就是您的 URL 需要包含的内容,您的代码才能真正起作用。

于 2013-10-14T17:22:47.630 回答