我有一个网站定义的问题,它有几个网站页面,在那些页面我需要有一个顶级菜单,所以我创建了一个用户控件,绘制该菜单,并将其添加到页面。
部署解决方案后,我可以很好地创建网站。
在初始阶段,我有菜单链接的硬编码值,在每个页面中我都可以看到菜单。 现在菜单是动态的,所以我有一个带有菜单选项的sharepoint列表,所以我更改了代码,而不是硬编码的值,我从列表中获取它们,代码运行正常,我可以在调试时检查,但最后我得到一个完整的空白页面。
我无法与将在网站页面中使用的用户控件内的sharepoint数据进行交互?
我在普通/应用程序页面中测试了控件,它在两种情况下(硬编码和共享点数据)都可以正常工作。
代码的简单示例:
protected void Page_Load(object sender, EventArgs e)
{
lblDate.Text = DateTime.Now.ToLongTimeString();
ddlData.Items.Clear();
//Option Manual - WORKS FINE
ddlData.Items.Add("Manual 1");
ddlData.Items.Add("Manual 2");
ddlData.Items.Add("Manual 3");
//Option Sharepoint Data - DOESNT WORK
SPSecurity.RunWithElevatedPrivileges(delegate () {
using (SPSite site = SPContext.Current.Site)
{
using (SPWeb web = site.RootWeb)
{
foreach (SPList lista in web.Lists)
{
ddlData.Items.Add(lista.Title);
}
}
}
});
}
代码的其余部分,它是一个简单的页面,引用了这个用户控件,而用户控件的aspx代码只有这两个控件的声明。
答案 0 :(得分:0)
经过多次测试,我得出结论,我有两个问题: 1 - 在这个项目中出于某些原因,我不知道,在代码中有人添加了一些代码来清除错误,这就是为什么我有空白页面。
2 - 看到错误之后,我可以确认如果我使用网站页面并尝试使用Using获取数据,当它尝试处理对象时会抛出异常,所以解决方案很简单,只需删除Usings
由于