2011-04-29 17 views
26

estoy Encuadernación mi modelo de la siguiente manera en la vista:cómo retener espacios en DropDownList - ASP.net MVC Razor ve

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

cuestión es mi elemento de texto es un texto con formato con espacios intermedios palabras, como abajo

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

Quiero conservar los espacios en este texto de elemento incluso después de que se hayan agregado a DropDownList. Pero por desgracia mi DropDownList les muestra sin espacios como a continuación:

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

Cuando veo la fuente de la página de esos espacios están intactos, pero en la pantalla no lo es. Intenté agregar '&nbsp;' en lugar de espacios, pero el método interno SelectList (clase de estructura MVC) usa HtmlEncode antes de agregarlos como elementos en la lista desplegable.

¿Hay alguna manera de que pueda lograrlo?

Respuesta

62

nbsp en html corresponde a "\ xA0" como una cadena C#, a fin de utilizar esto en vez de espacios, cuando se codifica en HTML que producirá nbsp

+0

Eso es brillante. Funcionó a las mil maravillas. Ojalá pudiera dar 100 voto positivo :) – JPReddy

+0

Gracias por el gran consejo, no sabía acerca de este. – Scott

+0

Me falta algo, agrego \ xA0 como un resultado de la base de datos pero en la lista de selección no veo el espacio pero "\ xA0" ..? – Muflix