【问题标题】:Setting lang attribute of HTML tag [duplicate]设置HTML标签的语言属性[重复]
【发布时间】:2020-04-17 20:53:58
【问题描述】:

我想在 webforms 中设置 HTML 标签的 lang 属性,这样在英文的情况下,输出将是

<html lang="en">

我就是这样做的;在标记中,我有这个:

<html id="SomeID" runat="server">

在后面的代码中,我有这个:

SomeID.Attributes.Add("lang", "en"); // or SomeID.Attributes.Add("lang", "fr");

问题是实际输出是

<html id="SomeID" lang="en">

标签的 ID 仍然存在,所以我尝试添加:

SomeID.Attributes.Remove("id");

但 ID 仍然显示。

那么如何在我的代码隐藏文件中设置 lang 属性,以便 HTML 标签只有 lang 属性。

【问题讨论】:

  • 请尝试使用搜索。查询 "asp.net html tag lang attribute" 给出了提到的重复项和其他各种。
  • 其实不是重复的;例如,您链接到的答案已经完成了问题中的内容。我在问如何设置语言,然后删除 id="SomeID" 属性,以便它不会显示在 HTML 输出中。现在,输出是
  • 您可以做到这一点,甚至不需要 ID 属性,如该问题所示。
  • @CodeCaster:我试过了,但如果不给它一个 ID,我就无法访问控件。你如何引用控件?有 Page.FindControl(id) 但它采用 string(id) 作为参数,所以仍然需要给标签一个 ID?
  • 你不需要访问控件; 在您的代码中创建一个变量并按照建议的方式使用它:&lt;HTML lang="&lt;%= PageLanguage %&gt;"&gt;.

标签: c# asp.net webforms


【解决方案1】:

这是一个使用 Jquery 的解决方案:

这就是你的 html (aspx) 的样子:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('#SomeID').removeAttr('id');
    });
</script>


<html id="SomeID"  runat="server" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    </div>
    </form>
</body>
</html>

和服务器上的代码(aspx.cs):

protected void Page_Load(object sender, EventArgs e)
{
    SomeID.Attributes.Add("lang", "en");
}

【讨论】:

    【解决方案2】:

    您可以添加 RegisteredScript 并将语言值传递给 javascript 函数。在 HTML 中,您可以通过该 javascript 函数设置添加此属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多