【问题标题】:add stuff to Master page's <html> tags from child page in asp.net?从 asp.net 的子页面向母版页的 <html> 标签添加内容?
【发布时间】:2010-09-10 00:54:24
【问题描述】:

我正在尝试在我的一个子页面中添加 xfbml 代码,但我意识到我必须添加这一行:

 xmlns:fb="http://www.facebook.com/2008/fbml"

到页面的 HTML 部分,如下所示:

<html xmlns:fb="http://www.facebook.com/2008/fbml">

但我不想将它添加到母版页,因为我只在一个子页面上使用了类似按钮。有没有办法告诉 asp.net 在加载特定子页面时添加这一行?

谢谢。

【问题讨论】:

标签: asp.net


【解决方案1】:

是的,只需执行以下操作:

首先向母版页添加一个公共属性:

public partial class Master : System.Web.UI.MasterPage
{
    public bool FacebookHtml;

然后在您的 Master 的 aspx 中进行内联检查:

<html <%= FacebookHtml ? "http://www.facebook.com/2008/fbml" : "xmlns='http://www.w3.org/1999/xhtml'" %>>

然后在您的内容页面中将其设置为 true(请记住在您的内容页面中也包括 MasterType):

protected void Page_Load(object sender, EventArgs e)
{
    Master.FacebookHtml = true;
}

【讨论】:

    【解决方案2】:

    在前端,做这样的事情:

    <html xmlns="http://www.w3.org/1999/xhtml" <%= FBNamespace() %>>
    

    在母版页的后端,创建一个公共属性:

    Private _fbNamespace As String = ""
    Public Property FBNameSpace() As String
        Get
            Return _fbNamespace
        End Get
        Set(ByVal value As String)
            _fbNamespace = value
        End Set
    End Property
    

    最后在子页面中:

    CType(Page.Master, MasterPage).FBNameSpace = "xmlns:fb=""http://www.facebook.com/2008/fbml"""
    

    【讨论】:

    • 嗨,这看起来不错,因为如果将来需要,我可以在其中添加任何东西..但我不明白为什么我需要编写 CType?谢谢!
    • 这会将页面的主页面转换为项目中 MasterPage 的类型,以便您可以使用该自定义属性。否则,它只会将 Page.Master 视为通用 MasterPage 类型。如果您的 MasterPage 具有不同的类名,则将“MasterPage”替换为类名。
    • 你也可以在内容页中使用 声明来设置类型,避免强制转换。
    • 您好,谢谢,我只需稍作调整就可以使用它,我使用 c#,所以一开始我有点不确定,但我也包含了虚拟路径,并且不需要强制转换,因为Chris Mullins 指出,总而言之,让它工作得很好,非常感谢这个绝妙的主意!
    【解决方案3】:

    一种方法是让您的 HTML 标记成为服务器标记。

    <head id="headtag" runat="server">
    

    然后您的子页面可以执行代码:

    var headtag = Master.FindControl("headtag") as HtmlGenericControl;
    headtag.Attributes["xmlns:fb"] = "http://www.facebook.com/2008/fbml";
    

    我可以在标记中看到的唯一副作用是,您最终会在呈现的 HTML 中使用额外的 id 属性;但是,我怀疑这不会伤害任何人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      相关资源
      最近更新 更多