在进行SharePoint2013的开发过程中我发现在开启了某些功能,或者说是创建了个人站点之后有很多地方变了比如下面这个地方:
当然相应的URL地址也发生改变。也许很明确的我就打开了Welcome.ascx文件发现代码中并没有什么特殊的判断来说明这个改变,
MenuItemTemplate menuItem = base.GetMenuItem("ID_PersonalInformation");
if (menuItem != null)
{
if (currentUser == null)
{
menuItem.Visible = false;
}
else
{
string serverRelativeUrlFromUrl = this.Web.GetServerRelativeUrlFromUrl(SPUtility.ContextLayoutsFolder + "/userdisp.aspx?Force=True");
menuItem.ClientOnClickScript = "javascript:GoToPage('" + SPHttpUtility.EcmaScriptStringLiteralEncode(serverRelativeUrlFromUrl) + "');return false;";
if ((SPContext.Current.Site != null) && SPUtility.IsCompatibilityLevel15Up)
{
menuItem.Description = SPResource.GetString("PersonalActions_PersonalInformationDescription15", new object[0]);
}
}
}
这就让我开始怀疑他是开启了某个Feature后在页面中加了某个东西改变了这个地址。于是我首先想到的是js更改然后就Search了一下页面源代码发现如下:
至此彻底的证明了我的想法,我看了一下这个js的函数名称:function ctl00_ctl20_SocialNavControl_insertMyProfileMenu(),于是搜索了一下Socia开头的ascx,并没有发现什么。不过衣蛾Feature引起了我的兴趣:
看了一下代码发现了问题所在.