だから、私はこのコードを持っています:
public override void ItemUpdated(SPItemEventProperties properties)
{
base.ItemUpdated(properties);
SPListItem newItem = AMethodWhichGetsANewListItem();
properties.ListItem.ParentList.GetItemById(properties.ListItemId).Delete();
properties.Cancel = true;
properties.InvalidateListItem();
properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;
properties.RedirectUrl = newItem.ParentList.DefaultDisplayFormUrl + "=" + newItem.ID;
}
このイベントのプロパティには、利用できない ListItem があります。これ以降、キャンセルやリダイレクトはできません。
エラー ログには次のように表示されます。
`System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. at Microsoft.SharePoint.SPListItemCollection.get_Item(Int32 iIndex) at Microsoft.SharePoint.SPListItem.EnsureItemIsValid()`
追加しても何も起こりproperties.InvalidateListItem()
ません。ItemUpdated ブロックの try { } キャッチは、例外をキャッチしません。
私に何ができる?