我正在尝试添加网页部件的用户配置文件页面编程。我有这样的代码:
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.
当我尝试将这个url复制并粘贴到浏览器时,它工作得很好。有什么问题吗?谢谢!
发布于 2014-05-10 03:33:48
您不能编辑应用程序页(位于_layouts虚拟目录中的页)。
我能看到的唯一解决方案是configure user profile service。这样做后,/_layouts/userdisp.aspx将不再用于显示用户配置文件,您将被重定向到“我的网站”用户配置文件页面,您可以编辑。
编辑:如果我没记错的话,你也需要configure "My Sites"。
https://stackoverflow.com/questions/23572262
复制相似问题