【问题标题】:checked property of a radio button not binding to boolean property of a model单选按钮的选中属性未绑定到模型的布尔属性
【发布时间】:2019-02-08 19:26:07
【问题描述】:

下面是我设置了单选按钮。我将配置作为组名,并且我在该组中有 4 个不同的单选按钮,它们具有不同的 selectionId,并且我将选中属性的第三个选项绑定到布尔选择。当我获取方法时,我能够将选中的属性绑定到数据库中的选择。但是当我选择单选按钮时,我想将选择变为真,这对我来说不会发生模型绑定它以保存方法并将该选择保存在数据库中。列表中的每个模型都将具有相同的 ConfigurationName。

@model List<Model>
    <form method="post" asp-action="Configure" novalidate>

      @foreach (var x in Model)
                {
        @Html.RadioButton(x.Configuration,
                    x.SelectionId,
                    x.Selection,
                    new { id = x.SelectionId })
    }

     <div class="modal-footer">
                    <input type="submit" value="Save" class="btn btn-default" />
                </div>
        </form>

控制器方法

     [HttpPost]
     [ValidateAntiForgeryToken]
public ActionResult Configure(List<Model> modellist)
            {
              //will have have to write save logic here, but first my model does not get value of selection as true when that radio button is clicked
                return RedirectToAction("Index");
            }

【问题讨论】:

  • 请同时提供控制器方法,您的意思是您正在检查单选按钮并且在控制器上您没有收到将其保存到数据库中的值(真或假)?
  • 刚刚添加了@Zinov
  • 是的。它总是给我控制器方法的错误值。
  • 在这里您将找到您的答案haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx 查看您需要在 html 标记的 name 属性上创建的索引,以便将其作为控制器上的列表检索。希望这会有所帮助

标签: asp.net-mvc model-view-controller


【解决方案1】:

单选按钮将仅回发所选值,该值不会是布尔值。

也许您可以在 POST 操作中有一个复杂的模型,您可以将列表作为属性(而不是实际模型),然后使用另一个属性来获取选定的单选按钮,如下所述:https://stackoverflow.com/a/33464014/218408

【讨论】:

    猜你喜欢
    • 2016-11-01
    • 2017-06-22
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 2011-07-24
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多