重定向代码在itemreceiver中不起作用

rak*_*los 1 c# sharepoint

如何从sharepoint重定向到页面?

我在itemadded事件接收器中有一个列表:

SPUtility.Redirect("http://mysite", SPRedirectFlags.Default, HttpContext.Current );
Run Code Online (Sandbox Code Playgroud)

但是在调试时,HttpContext.Current为null,因此在添加列表项时不会进行任何重定向.

dar*_*iom 6

ItemAdded事件是异步发生的(即在添加项目后的某个时间).它在一个单独的线程上执行,该线程无法访问当前请求的HttpContext(因此您将无法发送响应以告知用户的浏览器重定向).

这可能在ItemAdding事件接收器中起作用 - 它在将项添加到列表的同一线程上执行.我不确定执行重定向是否安全,因为它可能会阻止其他底层代码在SharePoint中执行.

Lars Fastrup在您之前的一个问题(使用itemreceiver sharepoint重定向)中回应了这一点.考虑实施他在那里推荐的解决方案.