ASP.NET烦人的URL编码字符串

Tom*_*len 4 c# asp.net

我有这个小功能:

// Adds to menu
public void addMenuToList(int menuVal, string menuTxt, int depth, bool hasChildren)
{
    for (int i = 0; i < depth; i++)
    {
        menuTxt = "&nbsp;" + menuTxt;
    }
    if (hasChildren) { menuTxt = " + " + menuTxt; }

    ListItem newItem = new ListItem();
    newItem.Text = menuTxt;
    newItem.Value = menuVal.ToString();
    parent.Items.Add(newItem);
}
Run Code Online (Sandbox Code Playgroud)

然后继续创建以下HTML:

<select size="4" name="ctl00$mainContent$parent" id="ctl00_mainContent_parent" class="tbox widebox">
    <option selected="selected" value="0">Top Level</option>
    <option value="1"> + Boxes</option>
    <option value="2">&amp;nbsp;&amp;nbsp;Wrapping</option>    
    <option value="8"> + &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;All Products</option>
</select>
Run Code Online (Sandbox Code Playgroud)

这是编码的URL &nbsp;&amp;nbsp;其败坏了渲染选择框的格式.任何想法如何防止这种情况发生?我需要选项中的初步空格.

not*_*row 7

试试以下:

string space = Server.HtmlDecode("&nbsp;");

for (int i = 0; i < depth; i++)
{
    menuTxt = space + menuTxt;
}
Run Code Online (Sandbox Code Playgroud)

编辑:是具有UTF-8 U + 00A0值的字符(例如,它呈现为空格,但不被任何IsSpace方法变体视为空格)