2010-02-17 35 views
2

我构建了一个可部署的母版页到一个DLL中,并在多个ASP.NET Web应用程序中使用虚拟路径提供程序引用它。我遇到的问题是这真的混淆了我的aspx页面的源视图。主页面和虚拟路径提供者的问题

这里面每一个实际上attatches母版的每个内容页我的aspx.cs页面代码,但正如我所说,现在,我的<asp:Content>标签变得很困惑,我不能CTRL K + CTRL + d我的内容页面,它会在所有事件上抛出验证错误。帮帮我!

protected override void OnPreInit(EventArgs e) 
     { 
      MasterPageFile = MasterPageVirtualPathProvider.MasterPageFileLocation; 
      base.OnPreInit(e); 
     } 

回答

2

为了获得对共享MP的设计时支持,您需要为VS提供标记以便使用。

您可以通过复制MP中的标记文件来消除项目,删除代码隐藏属性并删除代码隐藏文件或添加带有空白代码隐藏的链接副本。

现在将您的内容页面的主页面设置为您刚刚创建的存根,并且您应该有设计时支持。

您的VPP应该在运行时从嵌入标记进行渲染。

不是最优的,但如果你想要设计时支持,我认为这是唯一的方法。

+0

因此,我应该在我的内容页面中设置MasterPageFile属性来表示“〜/ MasterPages/Blank.master”,并将正确的内容占位符添加到Blank.master?然后,当页面实际加载时,它会覆盖MasterPageFile属性到页面init上的我的VPP主页面? – chrisjlong 2010-02-18 02:32:49

+0

@chrisjlong​​,好的,让我再回答这个问题。 – 2010-02-18 03:16:54

+0

@chrisjlong​​,也许'存根'是误导。标记需要完整。你可以在保留逻辑的同时修改标记。 – 2010-02-18 03:28:25