我创建了一个复选框列表,但是我不能勾选它们
本文关键字:不能 复选框 创建 一个 列表 | 更新日期: 2023-09-27 18:19:05
结果是复选框列表,但我不能检查他们,当我按下鼠标按钮什么都没有发生。有什么帮助吗?
这是我在控制器
中的代码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;
这是我在view
中的代码<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>
你的表单标签在哪里?没有它,任何东西都不会被张贴到任何地方。
添加:
@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" 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>
}
这个创建复选框的方法看起来不太标准:
<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.
}