0

所以我有这样的看法:

@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

想法?

4

2 回答 2

0

CheckBoxes 只能有布尔状态:选中或未选中。您的模型必须使用布尔值 true 或 false 来设置复选框状态。如果您希望您的复选框充当将 Id 保存到数据库的机制,您需要编写业务逻辑来检查复选框是否在控制器操作上被选中。如果复选框被选中,则写 Id,否则不写 Id。

于 2013-04-15T19:31:33.277 回答
0

您应该有一个 bool model.Item1.checked(或活动、启用等),然后使用它而不是 model.Item1.id,它将跟踪该项目的标志是打开还是关闭。

然后,当他们发布表单时,您可以遍历(或使用 LINQ)所有项目并为每个具有 .checked = true 的项目保存 id。

于 2013-04-15T19:35:57.623 回答