C# ASP.NET/SharePoint母版页问题
我使用的是SharePoint Server 2007+C+.Net 3.5+VSTS 2008+ASP.Net。我正在使用协作门户模板C# ASP.NET/SharePoint母版页问题,c#,asp.net,.net,sharepoint,visual-studio-2008,C#,Asp.net,.net,Sharepoint,Visual Studio 2008,我使用的是SharePoint Server 2007+C+.Net 3.5+VSTS 2008+ASP.Net。我正在使用协作门户模板 我正在开发一个自定义aspx页面,并将其放入站点的_布局文件夹中,我希望将SharePoint站点的default.master应用于此aspx页面。有关于如何实现此目标的示例吗?如果使用SharePoint Designer,则可以右键单击页面,然后选择要应用的母版页。可以在PreInit事件中添加代码,使自定义页面使用当前站点的母版页 protected
我正在开发一个自定义aspx页面,并将其放入站点的_布局文件夹中,我希望将SharePoint站点的default.master应用于此aspx页面。有关于如何实现此目标的示例吗?如果使用SharePoint Designer,则可以右键单击页面,然后选择要应用的母版页。可以在PreInit事件中添加代码,使自定义页面使用当前站点的母版页
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
SPWeb myWeb = SPControl.GetContextSite(Context).OpenWeb();
string strUrl = myWeb.ServerRelativeUrl + "/_catalogs/masterpage/my.master";
this.MasterPageFile = strUrl;
}
或者用default.master替换my.master以使用默认母版页。或者检查spweb的MasterUrl属性并使用它
无论哪种方式,它都应该让您朝着正确的方向前进。实现这一点的最佳方式是使用HttpModule。这允许对所有应用程序页面(即LAYOUTS文件夹中的页面)使用自定义母版页。它可以使用功能进行部署,并且可以在每个web应用程序中激活,因为httpmodule需要在web.config中注册,它是web应用程序范围 通过将其设置为web应用程序范围,您的最终用户将拥有统一的用户体验,而不是在所有其他现成的应用程序页面仍使用默认的sharepoint application.master时,让单个页面看起来像网站的前端 有关代码示例和更深入的解释,请参见 另外,由于缺少内容占位符,您使用上述代码时出现错误。您需要创建自定义母版页的副本。尽管样式可以相同,但应用程序页面使用的内容占位符多于前端母版页 只需复制自定义母版页,将其从CustomMaster.master重命名为CustomMasterEdit.master,然后将其用于应用程序页面样式,SharePoint将抛出一个错误,告诉您缺少哪些占位符,继续添加所需占位符,直到页面正常工作为止。我相信还需要2或3个额外的占位符 p.p.S.要使sharepoint显示有意义的错误,请转到web.config并查找标记,并将callstack属性从false更改为true。然后,查找customErrors标记并将mode属性设置为off。要完全启用调试,还可以启用ASP.NET跟踪。当然,您不应该在生产环境中执行此操作 可以找到有关修改web.config以使sharepoint显示真实错误消息的详细信息
当我使用您的代码时,会显示SharePoint未知错误页。如果您使用:SPWeb myWeb=SPControl.GetContextWebContext;我已使用SharePoint Designer打开该网站。我将页面放在_布局文件夹中,但SharePpoint designer左上角的文件夹列表中没有_布局文件夹。你知道怎么了吗?