簡體   English   中英

如何從視圖包中的字符串列表生成復選框?

[英]How to generate checkboxes from string list in viewbag?

我的控制器方法中有以下代碼返回視圖:

public ActionResult Create()
{
  var allprivs = new SQLRolerecord().GetAllPrivsInApp();
  ViewBag.AllPrivsInApp = allprivs;
  return View();
}

其中GetAllPrivsInApp方法返回一個IEnumerable<string> 然后在視圖中,我嘗試使用以下 Razor/html 從返回的字符串列表中創建復選框列表:

<table>
@{
  List<string> privsInApp = ViewBag.AllPrivsInApp;
  foreach (var priv in privsInApp)
  {
    @Html.CheckBox(priv,  new { value = priv, @label=priv})
  }
}
</table>

這會生成我期望的正確數量的復選框,但是,我沒有在它們旁邊看到標簽。 在應用程序運行時查看 HTML 源代碼時,我可以看到每個復選框的name和其他幾個屬性包含我期望的每個文本框的文本值。 如何讓文本顯示在每個復選框旁邊?

這是顯示內容的屏幕截圖:

在此處輸入圖片說明

這是生成的源代碼:

<table>
<input id="AdminRead" label="AdminRead" name="AdminRead" type="checkbox" value="AdminRead" /><input name="AdminRead" type="hidden" value="false" /><input id="AdminWrite" label="AdminWrite" name="AdminWrite" type="checkbox" value="AdminWrite" /><input name="AdminWrite" type="hidden" value="false" /><input id="Privilege1" label="Privilege1" name="Privilege1" type="checkbox" value="Privilege1" /><input name="Privilege1" type="hidden" value="false" /><input id="Privilege2" label="Privilege2" name="Privilege2" type="checkbox" value="Privilege2" /><input name="Privilege2" type="hidden" value="false" /><input id="Privilege3" label="Privilege3" name="Privilege3" type="checkbox" value="Privilege3" /><input name="Privilege3" type="hidden" value="false" /><input id="Privilege4" label="Privilege4" name="Privilege4" type="checkbox" value="Privilege4" /><input name="Privilege4" type="hidden" value="false" /><input id="Privilege5" label="Privilege5" name="Privilege5" type="checkbox" value="Privilege5" /><input name="Privilege5" type="hidden" value="false" /><input id="Privilege6" label="Privilege6" name="Privilege6" type="checkbox" value="Privilege6" /><input name="Privilege6" type="hidden" value="false" /><input id="Privilege7" label="Privilege7" name="Privilege7" type="checkbox" value="Privilege7" /><input name="Privilege7" type="hidden" value="false" /><input id="Privilege8" label="Privilege8" name="Privilege8" type="checkbox" value="Privilege8" /><input name="Privilege8" type="hidden" value="false" /><input id="Privilege9" label="Privilege9" name="Privilege9" type="checkbox" value="Privilege9" /><input name="Privilege9" type="hidden" value="false" /><input id="Privilege0" label="Privilege0" name="Privilege0" type="checkbox" value="Privilege0" /><input name="Privilege0" type="hidden" value="false" />
</table>

謝謝你。

如果您只是在尋找復選框的標簽,那么這應該有效:

<table>
@{
  List<string> privsInApp = ViewBag.AllPrivsInApp;
  foreach (var priv in privsInApp)
  {
        <tr>
            <td>@Html.Label(priv)</td>
            <td>@Html.CheckBox(priv, new { value = priv })</td>
        </tr>
  }
}
</table>

這也假設您使用 Bootstrap 進行樣式設置。

如果這有幫助,請告訴我!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM