剃刀代码编辑器默认显示``?''

时间:2020-04-21 09:08:22

标签: c# asp.net razor

在我的表单中,有一个文本框,使用EditorFor的剃须刀代码提供,为此提供的类型为 Char 。 但是它总是默认显示一个'。',这是什么意思?是因为 char 类型?

请看图片enter image description here

1 个答案:

答案 0 :(得分:2)

这是无效的Unicode代码点字形。在大多数浏览器中,当它们遇到空字符'\ 0'(U + 0000)时,就会看到它。 这恰好是.NET char数据类型的默认值。

三种解决方法:

  1. 将有效字符替换为默认字符,例如空格:c == default(char) ? ' ' : c
  2. 添加逻辑以在值为EditorFor时隐藏LabelFordefault(char)
  3. 将数据类型更改为System.String,这会导致在nullString.Empty两种情况下正确地再现