我试图以编程方式将webpart添加到用户个人资料页面。我有这段代码:
using (SPSite site = new SPSite(SPContext.Current.Site.ID))
{
using (SPWeb web = site.OpenWeb())
{
try
{
web.AllowUnsafeUpdates = true;
string userPageUrl = web.Url + "/layouts/userdisp.aspx?force=true&id=" + web.CurrentUser.ID.ToString();
SPLimitedWebPartManager manager = web.GetLimitedWebPartManager(userPageUrl, PersonalizationScope.Shared);
ContentEditorWebPart cewp = new ContentEditorWebPart();
cewp.ID = "test";
cewp.Title = "test User Profile webpart title";
cewp.Description = "test User Profile description";
cewp.Content.InnerText = "USER INFORMATION";
manager.AddWebPart(cewp, "Main", 1);
manager.SaveChanges(cewp);
}
catch (Exception ex)
{
ex.ToString();
}
}
}
但它在创建SPLimitedWebPartManager
:The file http://localhost/layouts/userdisp.aspx?force=true&id=1 does not exist.
当我尝试将此网址复制并粘贴到浏览器时,它可以正常工作。有什么麻烦?谢谢!
答案 0 :(得分:1)
您无法编辑应用程序页面(位于_layouts
虚拟目录中的页面)。
我能看到的唯一解决方案是configure user profile service。完成后,/_layouts/userdisp.aspx
将不再用于显示用户个人资料,您将被重定向到"我的网站"用户个人资料页面,您可以编辑。
编辑:如果我没弄错的话你也需要configure "My Sites"。