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 に答える