如何从背后的代码中动态添加ASP.NET Web窗体中的怪癖模式元标记?

问题描述 投票:0回答:1

我有一个.aspx页面,如下所示:

<!DOCTYPE html>
<html>
<head runat="server">
    <title>My Page</title>
</head>
<body></body>
</html>

我正在尝试在页面后面的代码中,即在Page_load中使用以下代码设置怪癖模式元标记:

HtmlMeta _ContentTypeTag = new HtmlMeta()
{
    HttpEquiv = "Content-Type",
    Content = "text/html; charset=UTF-8"
};

Page.Header.Controls.Add(_ContentTypeTag);

HtmlMeta _QuirksModeTag = new HtmlMeta()
{
    HttpEquiv = "X-UA-Compatible",
    Content = "IE=EmulateIE8"
};

Page.Header.Controls.Add(_QuirksModeTag);

但是当我看到页面源时,它当前输出以下内容:

<!DOCTYPE html>
<html>
<head runat="server">
    <title>My Page</title>
    <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.0)">
    <meta name="MSThemeCompatible" content="no">
</head>
<body></body>
</html>

而我期望输出是这样的:

<!DOCTYPE html>
<html>
<head runat="server">
    <title>My Page</title>
    <meta http-equiv=Content-Type content="text/html; charset=UTF-8">
    <meta http-equiv=X-UA-Compatible content=IE=EmulateIE8>
</head>
<body></body>
</html>

此行为的原因是什么,我该如何解决?

UPDATE

我已经使用Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");修复了此问题。 (摘自here

但是,了解最初的方法为何行不通仍然很好。

c# asp.net webforms meta-tags quirks-mode
1个回答
0
投票

太简单了,在下面的代码后面使用下面的代码。

    Page.Title = "Meta title string here.."; 
    Page.MetaKeywords = "Meta keyword string here.."; 
    Page.MetaDescription = "Meta description string here.."; 
© www.soinside.com 2019 - 2024. All rights reserved.