Asp.net 母版页中的条件内容占位符

Asp.net 母版页中的条件内容占位符,asp.net,master-pages,contentplaceholder,Asp.net,Master Pages,Contentplaceholder,我的项目中有两个母版页,一个用于web视图,另一个用于电子邮件。在web母版页中,有一个占位符用于放置特定于页面的JavaScript,如果某个页面正在使用此占位符,并且我尝试通过编程方式将母版页更改为以电子邮件形式发送,则服务器会因为找不到占位符而崩溃 有没有一种方法可以改变行为,这样如果找不到占位符,占位符就不包含该位?我在想,也许在我的页面基类上,会循环使用一组占位符和内容标记,并删除那些不匹配的内容,但我不确定页面生命周期中是否有这样做的好处 我使用的是MVC而不是WebForms,如果

我的项目中有两个母版页,一个用于web视图,另一个用于电子邮件。在web母版页中,有一个占位符用于放置特定于页面的JavaScript,如果某个页面正在使用此占位符,并且我尝试通过编程方式将母版页更改为以电子邮件形式发送,则服务器会因为找不到占位符而崩溃

有没有一种方法可以改变行为,这样如果找不到占位符,占位符就不包含该位?我在想,也许在我的页面基类上,会循环使用一组占位符和内容标记,并删除那些不匹配的内容,但我不确定页面生命周期中是否有这样做的好处


我使用的是MVC而不是WebForms,如果这有什么不同的话。

您不能拥有一个ContentPlaceholder ID不存在的内容控件


与其去掉ContentPlaceHolder,为什么不提供一个空的内容控件呢?它不会呈现任何内容。

将ContentPlaceHolder添加到邮件母版页中,并将visible属性设置为false,该占位符的页面内容将不会呈现

<asp:ContentPlaceHolder id="javascriptPlaceHoldereHolder1" runat="server" Visible="false" />


也许我解释得很糟糕,我希望有一个非空的内容控件,可以在web母版页上呈现,但不能在邮件母版页上呈现如果要跨多个母版页重用页面,则所有母版页都必须为所有可能的内容控件设置内容占位符。但是,每个母版页都可以将添加到其占位符中的任何内容的可见性设置为“false”。因此,在邮件母版页中,您可以只执行javascriptPlaceHolder.Controls[0].Visible=false。