所以我有这样的观点:
@model Tuple<LocApp.Models.Location, LocApp.Models.Service>
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Location</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Item1.name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Item1.name)
@Html.ValidationMessageFor(model => model.Item1.name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Item1.active)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Item1.active)
@Html.ValidationMessageFor(model => model.Item1.active)
</div>
@Html.CheckBoxFor(model => model.Item2.id)
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
和行:@Html.CheckBoxFor(model => model.Item2.id)
IMO应该通过并为数据库中的每个服务创建一个基于id的复选框,以便我可以保存id。但是,显然我必须传入一个布尔值?我唯一拥有的是model.Item2.active
想法?
答案 0 :(得分:0)
CheckBoxes只能有布尔状态:Checked或Unchecked。您的模型必须使用布尔值true或false设置复选框状态。如果希望复选框充当将Id保存到数据库的机制,则需要编写业务逻辑以检查控制器操作上是否选中了复选框。如果选中该复选框,则写入Id,否则不要写入Id。
答案 1 :(得分:0)
你应该有一个bool model.Item1.checked(或者激活,启用等),然后使用它而不是model.Item1.id,它将跟踪该项目的标志是打开还是关闭。 / p>
然后当他们POST表单时,你可以遍历(或使用LINQ)所有项目并保存每个具有.checked = true的id。