用于对HTML ID的括号进行编码的标准标记
本文关键字:编码 标准 HTML ID 用于 | 更新日期: 2023-09-27 17:59:17
我必须对字符串进行编码,以删除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--", ")");
我想我不明白这个问题,因为感觉答案是用[
和]
代替。甚至是你提供的维基百科链接中的%28
和%29
。
我抓错棍子了吗?
编辑:从评论中所说的来看,%28
和%29
似乎不好,因为%
字符也是无效的,在这种情况下,你可以选择一个不会出现在其他地方的替代品。
EG像(
这样的东西变成了---28---
(甚至---openbracket---
),或者你可以保证不会出现在ID的其他地方(这应该是可能的)。
如果元素是动态创建的,那么为什么不在id更改括号上做一个.Replace来替换下划线呢?
如果元素不是动态创建的,那么为什么它们在id中有括号?!