0

我需要在页面上使用成对的标签/复选框填充一个字段集,这些标签/复选框因用户而异。目前我已经在 HTML 中这样硬编码:

旧 HTML:

    <fieldset id="checkBoxesFieldset" data-role="controlgroup" data-type="horizontal" id="groupedSites">
        <legend class="labelText">Select the Duckbilled Platypi that you want to include in your backyard menagerie</legend>
        <label for="duckbill1">1</label>
        <input type="checkbox" name="duckbill1" id="duckbill1" />
        <label for="duckbill2">2</label>
        <input type="checkbox" name="duckbill2" id="duckbill2" />

. . .

我认为新的 HTML 应该是这样的:

    <fieldset id="checkBoxesFieldset" data-role="controlgroup" data-type="horizontal" id="groupedSites">
        <legend class="labelText">Select the Duckbilled Platypi that you want to include in your backyard menagerie</legend>
    </fieldset>

...以及我页面中的 C# 和 jQuery 是这样的(jQuery 是极端的伪代码,但希望你能明白我想要完成的事情):

{//Razor    
    ...
    List<string> Platypi = getPlatypi();
}

jQuery:

$(function () {
    $.each(string s in @Platypi) {
        $("#checkBoxesFieldset").html.Add.Label(s);
        $("#checkBoxesFieldset").html.Add.Checkbox();
    }
}

这到底应该怎么做?

4

1 回答 1

0

如果访问字符串数组:

   string[] sites = new string[] { "1", "2", "3", "7", "42" };

...你可以这样做:

@foreach(var site in sites) { 
     @Html.Raw("<label for=" + site + ">" + site + " </label>");
     @Html.Raw("<input type=\"checkbox\" name=" + site + " id=" + site + " />");
}

但是,如果您想使用模型中的对象进行填充:

@foreach(var site in Model.ListSites) { 
       @Html.Raw("<label for=" + @site.ToString() + ">" + @site.ToString() + " </label>"); 
       @Html.Raw("<input type=\"checkbox\" name=" + @site.ToString() + " id=" + @site.ToString() + " />");
}
于 2013-05-02T22:13:31.877 回答