代码之家  ›  专栏  ›  技术社区  ›  user3250818

 &的更改;asp。net mvc html。下拉

  •  1
  • user3250818  · 技术社区  · 7 年前

    我想在html中显示缩进项。下拉

    这是控制器中的代码

    IEnumerable<ViewModels.testvm> test = db.Database.SqlQuery<ViewModels.testvm>(@"WITH tree (id, parentid, level, title, rn) as 
    (
       some code
    )
    ***********SELECT id,REPLICATE('&nbsp;',level) + title as title
    FROM tree
    order by RN");
    ViewBag.ParentID = new SelectList(test, "ID", "Title");
    

    但问题是&nbsp显示在下拉列表中。

    这是view>源结果:

     <select class="form-control" id="ParentID" name="ParentID"><option 
    
    value="10">Menu1</option>
    <option value="11">&amp;nbsp;Sub1</option>
    <option value="14">&amp;nbsp;Submenu1</option>
    <option value="12">Menu2</option>
    <option value="16">&amp;nbsp;sub2</option>
    <option value="13">Menu3</option>
    <option value="15">&amp;nbsp;sub3</option>
    <option value="17">&amp;nbsp;&amp;nbsp;sub sub</option>
    <option value="22">&amp;nbsp;&amp;nbsp;&amp;nbsp;sub3 sub sub</option>
    <option value="19">menu4</option>
    <option value="20">&amp;nbsp;sub4</option>
    <option value="21">menu5</option>
    </select>
    

    &nbsp; 已转换为 &amp;nbsp;

    我试过了 "\xA0" 而不是 &nbsp

    我认为html。raw可以解决这个问题,但我不知道如何将其用于html。下拉列表。

    <div class="col-md-10">
    
    @Html.DropDownList( "ParentID", null, htmlAttributes: new { @class = "form-
    control" })
    
    </div>
    

    知道吗?


    通过这样改变视图,问题得以解决:

       <select class="form-control" id="ParentID" name="ParentID">
            <option value="0">First Level</option>
            @foreach (var item in ViewBag.ParentID)
            {
                <option value="@item.Value">@Html.Raw(@item.Text)</option>
            }
        </select>
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Joshua Morgan    7 年前

    假设将集合放置在名为的ViewModel成员中,则可以手动创建下拉列表 ParentIDs :

    @if (Model.ParentIDs.Any())
    {
        <select class="form-control" id="ParentID" name="ParentID">
            @foreach (var item in Model.ParentIDs)
            {
                if (Model.ParentID == item.id)
                {
                     <option value="@item.id" selected>@item.title</option>
                }
                else
                {
                     <option value="@item.id">@item.title</option>
                }
            }
        </select>
    }