SharePoint 2013 网站定义中添加页面布局

时间:2024-06-15 22:36:14

今天在Visual Studio 2012中将页面布局打包到网站定义中。

新建Module “MasterPageGallary”

在Element中如下:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="MasterPageGallary" List="116" Url="_catalogs/masterpage" Path="MasterPageGallary" RootWebOnly="TRUE">
<File Path="EnterprisePortal.master" Url="EnterprisePortal.master" Type="GhostableInLibrary" IgnoreIfAlreadyExists="True" NavBarHome="False">
<Property Name="Title" Value="企业门户母版页" />
<Property Name="ContentTypeId" Value="0x010105" />
<Property Name="UIVersion" Value="15" />
</File>
<File Path="EnterprisePortal_Welcome.aspx" Url="EnterprisePortal_Welcome.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="True" NavBarHome="False">
<Property Name="Title" Value="企业门户欢迎页" />
<Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
<Property Name="PublishingAssociatedContentType" Value=";#$Resources:cmscore,contenttype_welcomepage_name;;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF390064DEA0F50FC8C147B0B6EA0636C4A7D4;#" />
</File>
</Module>
</Elements>

结果,部署后看似正常,可KenDie的微软,居然在页面布局这个页面中添加一段html代码,类似

<html xmlns:mso="urn:schemas-microsoft-com:office:office"

xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"><head>
<META name="WebPartPageExpansion" content="full">
<!--[if gte mso 9]><xml>
<mso:CustomDocumentProperties>
<mso:PublishingPreviewImage msdt:dt="string"></mso:PublishingPreviewImage>
<mso:ContentType msdt:dt="string">Page Layout</mso:ContentType>
<mso:MasterPageDescription msdt:dt="string"></mso:MasterPageDescription>
<mso:PublishingAssociatedVariations msdt:dt="string">
</mso:PublishingAssociatedVariations>
<mso:PublishingHidden msdt:dt="string">0</mso:PublishingHidden>
<mso:PublishingAssociatedContentType msdt:dt="string">
;#Agenda item;#0x010100C568DB52D...;#</mso:PublishingAssociatedContentType>
</mso:CustomDocumentProperties>
</xml><![endif]-->
<title>Dummy Content Type</title></head>

网上找了如下博客,终于解决这个问题。

http://blog.mastykarz.nl/placeholderpagetitle-is-the-root-of-all-evil/

原文的意思是,页面布局页面顶部,如果第一个Content的ContentPlaceholderID为PlaceHolderPageTitle的话,那么会自动在底部追加那段html。

这个什么莫名其妙的Bug?不过能解决问题就好。