Razor 页面:复杂的建模绑定不更新模型

Razor page: complex modeling binding not updating model

所以我正在尝试创建一个小工具,用户可以在其中 select 几天。但是,我需要一个非常复杂的模型来获取额外数据。

public class DayRange{
    ...
    List<DaySelected> Days
    ...
}
   
public class DaySelected{
    public bool Selected{ get; set;}
    public string DayName {get; set;}
    public DaySelected(string Day){
        Selected = false;
        DayName = day;
    }
}

我的 Razorpage 看起来像这样:

@Model DayRange
...
<form asp-action="RegisterSelection" asp-controller="DayRegister">
<table>
@foreach (var Day in Model.Days)
{
    <tr>
        <td>
            <input asp-for=@Day.Selected />
        </td>                                                            
    </tr>
}
</table>
<button type="submit">Confirm</button>

</form>

我的方法 Registerselection 看起来像这样:

[HttpPost]
public IActionResult RegisterSelection(DayRange dr){
    ...
}

但是,每当我更改任何文本框时,所有 selected 布尔值都保持不变。有人可以帮助我吗?提前致谢!

下面是一个将数据正确传递给操作的演示:

型号:

public class DayRange
    {
        public List<DaySelected> Days { get; set; }
    }

    public class DaySelected
    {
        public bool Selected { get; set; }
        public string DayName { get; set; }
        public DaySelected()
        {
           
        }
        public DaySelected(string Day)
        {
            Selected = false;
            DayName = Day;
        }
    }

查看:

@Model DayRange
<form asp-action="RegisterSelection" asp-controller="DayRegister">
    <table>
        @{ var i = 0;}
        @foreach (var Day in Model.Days)
        {
            <tr>
                <td>
                    <input asp-for=@Day.Selected name="Days[@i].Selected" />
                    @Day.DayName
                    <input asp-for=@Day.DayName name="Days[@i].DayName" hidden />
                </td>
            </tr>
            i ++;
        }
    </table>
    <button type="submit">Confirm</button>

</form>

结果: