2013-06-20 20 views
0

結果是複選框列表,但我不能檢查它們,當我按下鼠標buton什麼也沒有發生。 有什麼幫助嗎?我創建了checkboxlist,但我無法檢查它們

這是我在CONTROLER代碼

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" [email protected]></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> 

回答

0

哪裏是你的表單代碼?沒有它,什麼都不會發布在任何地方。

地址:

@using (Html.BeginForm()) 
{ 
    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" [email protected]></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> 
} 
+0

仍然無法檢查/選擇它們 – Reeco

0

創建一個複選框看起來並不標準的這種方法:

<div class="checkbox-group"> 
    <div class="adform-checkbox pull-left" [email protected]></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> 

編輯:

當我使用複選框,我傾向於做以下。在我的viewmodel類中,我收集了強類型項目:

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. 
} 
+0

編譯錯誤,不工作 – Reeco

+0

編譯器錯誤信息:CS1928:' System.Web.Mvc.HtmlHelper '不包含'CheckBox'的定義,並且最好的擴展方法重載'System.Web.Mvc.Html.InputExtensions.CheckBox(System.Web.Mvc.HtmlHelper,string)'有一些無效的參數 – Reeco

+0

錯誤是什麼?我添加了一個擴展的例子,說明如何處理可能對您有幫助的複選框。 –

相關問題