在我的asp.net-mvc网站上,我有一个字段,通常有一个字符串(来自数据库),但可能不时包含任何内容.因为IE不知道如何处理css"empty-cells"标签,所以空表格单元格需要填充一个
我想
Html.Encode(" ");
会为我解决这个问题,但很明显,它只会返回"".我可以按如下方式实现这个逻辑
Html.Encode(theString).Equals(" ")?" ":Html.Encode(theString);
也是一种非速记 - 如果可能的话,但坦率地说,两种选择都很难看.是否有更可读,更紧凑的方式将可选空间放在那里?
转换为" "
to "\xA0"
然后无条件地Html.Encode
结果可能更简单:
s = (string.IsNullOrEmpty(s) || s.Trim()=="") ? "\xA0" : s; Html.Encode(s);
十六进制00A0
标识非破坏空间的Unicode字符,这就是为什么
是等效的HTML实体
.
如果您对数据库有任何控制权,则可以将空或单空格字段转换为此"\xA0"
值,这将完全消除该条件.