簡體   English   中英

如何從絕對URL獲取SPListItem?

[英]How do I get the SPListItem from absolute URL?

嘗試使用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執行上下文)

從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需要包含的內容,您的代碼才能真正起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM