gpt4 book ai didi

网站上不存在 Sharepoint 列表,但在调试时它存在于我的代码中

转载 作者:行者123 更新时间:2023-12-05 03:14:39 24 4
gpt4 key购买 nike

我最终会创建一个共享点日历​​。我想在这里创建一个事件列表,但我会在这里遇到这个奇怪的错误。

我创建了一个事件列表,然后检查[查看]它是否已经创建。如果是,不是我想创建它,而是我的 testLabel 说它已经存在。

当我尝试删除列表时,在 myButton_Click 上,它给我这个错误:

Microsoft.SharePoint.Client.ServerException: List 'CompanyCalendar' does not exist at site with URL 'http://server1'.

代码

using Microsoft.SharePoint.Client;

namespace CalendarWeb.Pages
{
public partial class Default : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{

Uri hostWeb = new Uri(Request.QueryString["SPHostUrl"]);

using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity))
{
Web web = clientContext.Web;
ListCreationInformation listCreator = new ListCreationInformation();
listCreator.Title = "CompanyCalendar";
listCreator.Description = "Workcalendar";

listCreator.TemplateType = (int)ListTemplateType.Events;
var ifListExcists = web.Lists.GetByTitle(listCreator.Title);
if (ifListExcists == null)
{
web.Lists.Add(listCreator);
clientContext.ExecuteQuery();
testLabel.Text = "The " + listCreator.Title + " list was created";
}
else
{
testLabel.Text = "List already excist";
}
}
}

protected void myButton_Click(object sender, EventArgs e)
{
Uri hostWeb = new Uri(Request.QueryString["SPHostUrl"]);
using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity))
{
Web web = clientContext.Web;

var deleteList = web.Lists.GetByTitle("CompanyCalendar");
deleteList.DeleteObject();
clientContext.ExecuteQuery();
testLabel.Text = "list deleted";
}

}
}
}

当我查看我的 server1 站点时,列表不存在,但在代码中它似乎存在,因为我的变量 "ifListExcists" 永远不会为 null。

最佳答案

您的 ifListExists 变量永远不会为空,因为它没有在服务器上执行。

使用以下方法检查列表是否存在:

private bool ValdiateList(ClientContext clientContext, string listName, out List existingList)    
{

Web web = clientContext.Web;

existingList =null;

ListCollection lists = web.Lists;

var existingLists
= clientContext.LoadQuery(lists.Where(list => list.Title == listName));

clientContext.ExecuteQuery();

existingList = existingLists.FirstOrDefault();

return (existingList != null);

}

关于网站上不存在 Sharepoint 列表,但在调试时它存在于我的代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com