C# – How to retain spaces in DropDownList – ASP.net MVC Razor views

asp.net-mvcasp.net-mvc-3cdrop-down-menurazor

I'm binding my model in the following way in the view:

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

Issue is my item text is a formatted text with spaces in between words, as below.

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

I want to retain the spaces in this item text even after they are added to DropDownList. But unfortunately my DropDownList shows them without spaces as below:

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

When I view the source of the page those spaces are intact but in display it is not. I've tried to add '&nbsp;' instead of spaces but SelectList (MVC framework class) internal method is using HtmlEncode before adding them as items in the dropdownlist.

Is there any way I can achieve this?

Best Answer

nbsp in html corresponds to "\xA0" as a C# string, so use this instead of spaces, when HTML encoded it will produce nbsp