如何在ASP.net MVC Razor视图中保留DropDownList中的空格

27

以下是我在视图中绑定模型的方式:

<%=Html.DropDownList("SelectedItem",new SelectList(Model.MyItems,"ItemId","ItemName")) %>

我的问题是我的项目文本是一段带有单词间空格的格式化文本,如下所示。

#123  First          $234.00
#123  AnotherItem    $234.00
#123  Second         $234.00

我希望在将这个项目文本添加到DropDownList后仍然保留空格。但不幸的是,我的DropDownList会显示没有空格的文本,如下所示:

#123 First $234.00
#123 AnotherItem $234.00
#123 Second $234.00
当我查看网页源代码时,这些空格是保持不变的,但在显示时却不见了。我试过用'&nbsp;'取代空格,但 SelectList (MVC framework class) 内部方法在将它们作为下拉列表项添加之前会使用 HtmlEncode 进行编码。有没有什么办法可以实现这个效果?
1个回答

64

在 HTML 中,  对应于 C# 字符串中的 "\xA0"。因此,在编码 HTML 时,请使用这个字符串,而不是空格,它会生成 nbsp。


太棒了!它像魔法一样运行。我希望我能给100个赞👍。 - JPReddy
我似乎遗漏了什么,我从数据库中添加了 \xA0 作为输出,但在选择列表中我看不到空格,只看到 "\xA0"。? - Muflix
如果您正在使用CSHTML,它默认编码字符串,不像ASPX。您可能需要使用@Html.Raw。 - Volkan Ceylan
我遇到了相同的问题,但一直无法解决。我的页面是CSHTML,我通过string.Format({0,-15} | {1}, text1, text2)进行连接。 - dotnetspark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接