我在sharepoint 2007网站上添加了usercontrol。当我添加一个项目时,它会被添加,因为我是网站管理员。但是,当我的朋友尝试登录时,它会抛出“无法评估表达式bcoz代码已优化或本机框架位于堆栈顶部”在list.update()
上,并且在网站上显示“拒绝访问”错误。
以下是代码:
protected void btnOk_Click(object sender, EventArgs e)
{
try
{
using (SPSite site = new SPSite("http URL"))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["List name"];
UserItem = list.Items.Add();
UserItem["col 1"] = Data1;
UserItem["col 2"] = Data2;
UserItem["col 3"] = Data3;
UserItem["col 4"] = Data4;
UserItem["col 5"] = Data5;
UserItem.Update();
list.Update();
}
}
}
}
我还尝试了以下网址:
但即使这样也行不通。
答案 0 :(得分:0)
当您的朋友没有所需的优势时,可能会发生这种情况。对于您是网站管理员来说,每件事情都可以。您需要做的一件事是修改您的btnOk_Click代码,如下所示。
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite("http URL"))
{
using (SPWeb web = site.OpenWeb())
{
web .AllowUnsafeUpdates = true;
SPListItemCollection listitems = web.Lists["List name"].Items;
SPListItem userItem = listitems.Add();
userItem ["col 1"] = Data1;
userItem ["col 2"] = Data2;
userItem ["col 3"] = Data3;
userItem ["col 4"] = Data4;
userItem ["col 5"] = Data5;
userItem.Update();
web .AllowUnsafeUpdates = false;
}
}
});
试试这个...希望它能奏效。