这是我的示例代码:
SPWeb web = SPContext.Current.Web
SPList list = web.Lists["TestList"];
try {
web.AllowUnsafeUpdates = true;
list.Title = "Test";
list.Update();
}
finally {
web.AllowUnsafeUpdates = false;
}
我最后删除了代码块,然后再次尝试了。我发现“web.AllowUnsafeUpdates”仍然是假的。
是否意味着设置web.AllowUnsafeUpdates = false
是不必要的?
答案 0 :(得分:4)
web.AllowUnsafeUpdates
设置为请求持续时间(对于SPContext.Current.Web)或对应SPWeb对象的生命周期(如果通过GetWeb(...)
或Webs[]
从SPSite获取。
根据“再次尝试”的含义,您可能会获得SPWeb的新副本以获取新请求。
优良作法是保持AllowUnsafeUpdates
对于非常有范围的代码片段,就像使用try / finally一样。可能有其他代码会在同一个请求期间运行,并且在不应该允许的情况下错误地能够更新对象。