【问题标题】:Values of List of checkboxes not posted during submit提交期间未发布的复选框列表的值
【发布时间】:2021-08-06 10:26:11
【问题描述】:

我设法显示 2 行复选框,第 2 行最初在 cshtml 视图中被选中。但是在我更改视图上的选择并提交后,发布的数据并未反映当前的选择。它仍然显示页面构建时的初始状态。请帮忙谢谢。

我有一个这样的数据模型:

public class Check
{
    public List<CheckModel> chkList = new List<CheckModel>()
    {
        new CheckModel("1",false),
        new CheckModel("2",true)
    };
}

public class CheckModel
{
    public string name{get;set;}

    public bool choice{get;set;}

    public CheckModel(string nn, bool bb)
    {
        name=nn;
        choice=bb;
    }

}

视图是这样的:

@model 检查

@using (Html.BeginForm("abcde","Home", FormMethod.Post)) {

<ul>
    @for(int i=0; i < Model.chkList.Count;i++)
    {
        <li>
            input type="checkbox" asp-for=@Model.chkList[i].choice/>@Model.chkList[i].name
        </li>
    }
</ul>


<input type="submit" value="submit"/>

}

Homecontroller.cs:

public IActionResult abcde(Check c)
{
    return Ok();
}

【问题讨论】:

    标签: asp.net-core razor checkbox submit


    【解决方案1】:

    chkList 应该是一个属性

    public class Check
    {
        public List<CheckModel> chkList { get; set; } = new List<CheckModel>()
        {
            new CheckModel("1",false),
            new CheckModel("2",true)
        };
    }
    
    public class CheckModel
    {
        public string name { get; set; }
    
        public bool choice { get; set; }
    
        public CheckModel(string nn, bool bb)
        {
            name = nn;
            choice = bb;
        }
    
        public CheckModel()
        {
    
        }
    }
    

    【讨论】:

    • 您错过了 chkList 的 {get; set; }。还要给CheckModel添加一个无参构造函数@
    • 感谢您的回答,是的,我错过了 chklist 的 {get;set;}。我刚刚意识到有一个评级工具,我想知道如何使用它。试图增加值,但它不会响应...
    猜你喜欢
    • 2014-06-26
    • 2020-01-14
    • 2019-11-24
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    相关资源
    最近更新 更多