以编程方式更改 SharePoint 列表的 URL

本文关键字:列表 URL SharePoint 编程 方式更 | 更新日期: 2023-09-27 18:31:54

我在内容类型中以编程方式创建了一个库,我的URL是:

/

sites/test/_layouts/15/start.aspx#/1235/Forms/AllItems.aspx

我想更新此 URL 并更改

12345

通过我的 C# 代码中的其他内容(我在其他地方获得的字符串值)。

像这样:

/

sites/test/_layouts/15/start.aspx#/TEST/Forms/AllItems.aspx

我成功地轻松更改了库的标题,但没有更改URL。

SPList lst = web.Lists[oldVal];
                        lst.Title = properties.AfterProperties["CorporateName"].ToString();
                        lst.Update();

我在Sharepoint Designer中搜索并阅读了许多方法,但是我没有找到在Visual Studio上执行此操作的完美解决方案。

以编程方式更改 SharePoint 列表的 URL

SPList 对象没有用于移动到新 URL 的受支持方法。 但是每个列表都有一个相应的文件夹,该文件夹确实有一个 MoveTo() 方法,该方法将更改关联列表的 URL。

SPWeb web = site.OpenWeb()
SPFolder folder = web.Folders["ListURL"];
folder.MoveTo("NewURL");
folder.Update();

这不一定受支持,但它确实有效,我相信它使用与SharePoint Designer解决方法相同的后端逻辑。

手动处理此问题的一个很少讨论但相关的方法是重命名列表文件夹,同时通过 WebDAV 从资源管理器查看 SharePoint 网站。

谢谢 Arcan.NET 我在你的帮助下解决了我的问题!

SPList lst = web.Lists[properties.ListItem["Name"].ToString()];
SPFolder folder = web.Folders[lst.RootFolder.Url];
folder.MoveTo(properties.AfterProperties["Nickname"].ToString());

https://sharepoint.stackexchange.com/questions/168269/change-url-of-a-sharepoint-list-programmatically

Add-PSSnapin Microsoft.SharePoint.PowerShell –erroraction SilentlyContinue
$libOriginalUrl = "/Lists/YourLibName1";
$libNewUrl = "/YourLibName2";
$web = Get-SPWeb -Identity http://....
$lib = $web.GetList($web.Url + $libOriginalUrl)
$rootFolder = $lib.RootFolder;
$rootFolder.MoveTo($web.Url + $libNewUrl)