【问题标题】:how to post the choices i check or uncheck in my checkbox如何发布我在复选框中选中或取消选中的选项
【发布时间】:2019-12-20 01:55:15
【问题描述】:

我想编辑我在 Post 控制器中选中或取消选中复选框的框。这是我在 Get 和 Cshtml 中的代码

var assignedStudentBadges = db.Enrolled_Students_Badges.Where(x => x.CohortSubscriptionId == id);
            var badges = db.Badges;
            var studentBadges = new List<StudentBadgesViewModel>();
            foreach (var badge in badges)
            {
                var isChecked = assignedStudentBadges.Any(b => b.ID == badge.ID) ? "checked" : null;
                studentBadges.Add(new StudentBadgesViewModel
                {
                    BadgeId = badge.ID,
                    Name = badge.Label,
                    ImageURL = badge.ImageURL,
                    IsChecked = isChecked
                });
            }
            ViewBag.StudentBadges = studentBadges;
            ViewBag.Badges = new SelectList(assignedStudentBadges, "ID", "Label", cohortSubscriptions.Badges);


<div class="">
                                @{ foreach (var badge in ViewBag.StudentBadges)
                                    {
                                        <div class="col-md-12">
                                            <img src="@badge.ImageURL" width="80" alt="img-fluid" />
                                            @badge.Name
                                            <input type="checkbox" checked="@badge.IsChecked" id="@badge.BadgeId" />

                                        </div>
                                    }
                                }
                            </div>

【问题讨论】:

    标签: c# asp.net-mvc razor model-view-controller asp.net-mvc-5


    【解决方案1】:

    在输入中,checked 不是 true 或 false 属性。你需要类似的东西

    @if(@badge.IsChecked)
    {
        <input type="checkbox" checked="checked" id="@badge.BadgeId" />
    }
    else
    {
        <input type="checkbox" id="@badge.BadgeId" />
    }
    

    现在。这是一个简单的例子,有更好的方法,比如 inline if 或 @Html.Checkbox

    【讨论】:

    • 我的得到是好的,我有我想要的所有徽章的学生徽章,它在帖子中我不知道该怎么做
    【解决方案2】:

    如果您想回传复选框是否在帖子中被选中或取消选中,您可以将 asp-for 添加到您的输入中。然后,您应该可以访问列表项以及您的发布方法中的任何更改。如果还没有,请不要忘记在模型中的 ViewBag 属性中添加 [BindProperty] 注释。

        @for (var i = 0; i < Model.ViewBag.StudentBadges.Count; i++)
        {
            <img src="@Model.ViewBag.StudentBadges[i].ImageURL" width="80" alt="img-fluid" />
            @Model.ViewBag.StudentBadges[i].Name
            <input id="@Model.ViewBag.StudentBadges[i].BadgeId" type="checkbox" checked="@Model.ViewBag.StudentBadges[i].IsChecked" asp-for="@Model.ViewBag.StudentBadges[i].IsChecked"/>
        }
    

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      相关资源
      最近更新 更多