我有这样的代码来有条件地创建一个 Sharepoint 列表(有点像 upsert):
private void ConditionallyCreateList()
{
SPWeb site = SPContext.Current.Web;
// Check to see if list already exists; if so, exit
if (site.Lists.TryGetList(listTitle) != null) return;
SPListCollection lists = site.Lists;
SPListTemplateType listTemplateType = new SPListTemplateType();
listTemplateType = SPListTemplateType.GenericList;
string listDescription = "This list retains vals inputted for the Post Travel form";
Guid ListId = lists.Add(listTitle, listDescription, listTemplateType);
. . .
这在首次创建和应用程序的后续执行时有效。
但是,我对列表结构进行了一些彻底的重构并删除了旧的,以便(我希望)创建一个具有新结构的新结构。但是,我没有得到重构列表,而是在上面显示的最后一行得到了这个:
Microsoft.SharePoint.SPException was unhandled by user code
Message=Updates are currently disallowed on GET requests. To allow updates on a GET, set the 'AllowUnsafeUpdates' property on SPWeb.
我能够通过添加指示的代码来解决这个问题:
site.AllowUnsafeUpdates = true;
...但为什么这是必要的?为什么创建一个不再存在的列表(我从 Sharepoint“所有站点内容”集市中删除它)有问题(可能是“不安全的更新”)?