用于对HTML ID的括号进行编码的标准令牌?

问题描述

| 我必须对字符串进行编码以删除HTML元素的ID的括号。 括号(这些
(
)
)在HTML ID中无效,是否可以使用标准字符串(例如URL中使用的字符串)? 有没有可以在ASP.NET MVC中使用的现有方法? N.B.
System.Web.Mvc.HttpUtility.HtmlEncode(string)
,不对括号进行编码。     

解决方法

        根据HTML规范(以及有关id的问题),HTML
id
属性中不允许使用括号。如果需要它们,可以使用字符串替换,例如:
//  ( = \'op--\'  Opening Parenthesis
//  ) = \'cp--\'  Closing Parenthesis

string id = \"collectionName.get_Item(index)\";

// encode
string encodedId = id.Replace(\"(\",\"op--\").Replace(\")\",\"cp--\");

// decode
string decodedId = encodedId.Replace(\"op--\",\"(\").Replace(\"cp--\",\")\");
    ,        我想我不明白这个问题,因为答案似乎是代替ѭ5和ѭ6。甚至您提供的Wikipedia链接中的
%28
%29
。 我握住了棍子的错误末端吗? 编辑:从评论中说出来,似乎
%28
%29
不合适,因为
%
字符也是无效的,在这种情况下,您可以选择一个不会在其他地方出现的替代字。 EG诸如
(
变为
---28---
(甚至
---openbracket---
),或者您可以保证不会在ID的其他位置出现的其他东西(应该是可能的)。     ,        如果元素是动态创建的,那么为什么不对ID进行.Replace更改括号,例如下划线呢? 如果没有动态创建元素,那么为什么在id中加上括号?