我想表明在html.dropdownlist與縮進項目 變化& NBSP在asp.net mvc的html.dropdownlist
這是控制器
IEnumerable<ViewModels.testvm> test = db.Database.SqlQuery<ViewModels.testvm>(@"WITH tree (id, parentid, level, title, rn) as
(
some code
)
***********SELECT id,REPLICATE(' ',level) + title as title
FROM tree
order by RN");
ViewBag.ParentID = new SelectList(test, "ID", "Title");
代碼,你可以看到我添加& NBSP到下拉項replecate
但問題是& NBSP顯示在下拉列表中。
這是視圖>源結果:
<select class="form-control" id="ParentID" name="ParentID"><option
value="10">Menu1</option>
<option value="11">&nbsp;Sub1</option>
<option value="14">&nbsp;Submenu1</option>
<option value="12">Menu2</option>
<option value="16">&nbsp;sub2</option>
<option value="13">Menu3</option>
<option value="15">&nbsp;sub3</option>
<option value="17">&nbsp;&nbsp;sub sub</option>
<option value="22">&nbsp;&nbsp;&nbsp;sub3 sub sub</option>
<option value="19">menu4</option>
<option value="20">&nbsp;sub4</option>
<option value="21">menu5</option>
</select>
你可以看到
轉換爲&nbsp;
我試過"\xA0"
而不是 
但它顯示在下拉列表中呢!
我覺得html.raw可以解決,但我不知道我該如何使用它html.dropdownlist。
這個觀點
<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>
我想你需要閱讀這個:https://stackoverflow.com/questions/8239348/how-to-use-html-raw-in-mvc-razor-dropdownlist。每個'SelectListItem'選擇項目都很難使用'Html.Raw',所以嘗試使用基於CSS的樣式。 –
這是一個動態的n級下拉列表,我如何根據它的級別設置每個項目的樣式?我的意思是,margin:10px;對於第一級,保證金:其他項目的10px *級別? – user3250818
你不能使用'DropDownList()'做這個 - 方法建立它自己的'IEnumerable'並且結果被編碼。你可以做它用(說)連字符,否則你將需要手動生成HTML或者創建自定義'HtmlHelper'擴展方法 –