0

結果はチェックボックスリストですが、マウスボタンを押しても何も起こりません。助けはありますか?

これはコントローラーの私のコードです

ViewBag.Message = "Select Medias";
            var MediaInfo = CampaignManagementService.GetMedias((string)Session["ticket"]);
            List<MediaList> items = new List<MediaList>();
            foreach (var element in MediaInfo)
            {
                items.Add(new MediaList() { ID = element.Key, Name = element.Value });
            }
            ViewData["list"] = items;

そして、これは私のコードです

<fieldset>
     <legend>@ViewBag.Message</legend>
     @{
         foreach (var item in ViewData["list"] as List<MediaList>)
         {
             <div class="form-horizontal well">
                 <div class="control-group">
                     <div class="controls">
                         <div class="checkbox-group">
                             <div class="adform-checkbox pull-left" tabindex=@item.ID></div>
                             <label>@item.Name</label>
                         </div>
                     <input class="input-small" type="text" id="input"> 
                     </div>
                 </div>
             </div>
         }
         <button type="submit" class="btn btn-success">Create Tag</button>

     } </fieldset>
4

2 に答える 2

0

チェックボックスを作成するこの方法は、標準的ではありません。

<div class="checkbox-group">
    <div class="adform-checkbox pull-left" tabindex=@item.ID></div>
    <label>@item.Name</label>
</div>

Html.CheckBox()代わりに使ってみましたか?これにより、チェックボックスの正しい出力がレンダリングされます。

<input type="checkbox" value="true" />

だからあなたは試すことができます

<div class="checkbox-group">
    @Html.CheckBox(@item.ID)
    <label>@item.Name</label>
</div>

編集:

チェックボックスを使用しているときは、次のようにする傾向があります。ビューモデル クラスには、厳密に型指定されたアイテムのコレクションがあります。

public class MyViewModel
{
    public MyViewModel()
    {
        Items = new List<CheckBoxItem>();
        Items.Add(new CheckBoxItem { Id = 23, Text = "Hello" });
    }

    public IList<CheckBoxItem> Items { get; set; }
}

public class CheckBoxItem
{
    public int Id { get; set; }
    public bool Checked { get; set; }
    public string Text { get;set; }
}

上記はデモ用です。次に、ビューで次のようにします。

 for (int idx = 0; idx < Model.Items.Count;idx++ )
    {
        @Html.HiddenFor(m => m.Items[idx].Id)
        @Html.CheckBoxFor(m => m.Items[idx].Checked)<label>@Model.Items[idx].Text</label>
    }

次に、フォームを投稿すると、

[HttpPost]
public ActionResult Index(MyViewModel viewModel)
{
    // viewModel.Items will contains the checkbox items.
}
于 2013-06-20T08:55:59.750 に答える