删除列表项时Sharepoint对象模型中的奇怪错误

时间:2012-08-20 13:01:08

标签: sharepoint sharepoint-2010 shared-libraries

我得到了非常奇怪的错误,最后几个小时解决了这个问题

“GET请求目前不允许更新。要允许GET上的更新,请在SPWeb上设置'AllowUnsafeUpdates'属性。”

  Public Shared Sub DeleteListItem(ByVal listname As SPList, ByVal intItemID As Integer)

        Using MySite As New SPSite(SPContext.GetContext(System.Web.HttpContext.Current).Web.Url)

            Using MyWeb As SPWeb = MySite.OpenWeb()
                MyWeb.AllowUnsafeUpdates = True
                Dim itemColforGivenList As SPListItemCollection
                Dim query As New SPQuery()
             query.Query = "<Where><Eq><FieldRef Name='ID'/><Value Type='Counter'>" &    
                intItemID & "</Value></Eq></Where>"
                MyWeb.AllowUnsafeUpdates = True
                itemColforGivenList = listname.GetItems(query)
                If itemColforGivenList.Count > 0 Then
                    For i As Integer = listname.Items.Count - 1 To 0 Step -1
                        If listname.Items(i).ID = intItemID Then
                            MyWeb.AllowUnsafeUpdates = True
                            listname.Items.Delete(i)
                            listname.Update()
                            MyWeb.AllowUnsafeUpdates = False
                        End If
                    Next

                End If

            End Using
        End Using

请帮帮我

1 个答案:

答案 0 :(得分:0)

您是否尝试过MyWeb.Update();之后直接致电MyWeb.AllowUnsafeUpdates = true;listname.Update()调用可能是通过直接从Web中提取而不是在当前上下文中表示您具有该Web的对象来检查此属性。这确实会产生一些问题,因为您需要多次调用该Web /列表上的更新以启用和禁用该属性,并删除该项目,因此请记住这一点。