Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net核心页面中填充复选框列表?_C#_Asp.net Core_Razor Pages - Fatal编程技术网

C# 如何在asp.net核心页面中填充复选框列表?

C# 如何在asp.net核心页面中填充复选框列表?,c#,asp.net-core,razor-pages,C#,Asp.net Core,Razor Pages,我试图找出如何在asp.net核心页面中填充复选框列表。考虑下面的类: public class SignupPageModel { public string UserName { get; set; } public string Password { get; set; } public List<CheckBoxGroup> Hobbies{ get; set; } } public class CheckBoxGroup { public

我试图找出如何在asp.net核心页面中填充复选框列表。考虑下面的类:

public class SignupPageModel
{
    public string UserName { get; set; }
    public string Password { get; set; }
    public List<CheckBoxGroup> Hobbies{ get; set; }
}

public class CheckBoxGroup
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsSelected { get; set; }
}
并在视图中显示:

@for (var i = 0; i < Model.Input.Hobbies.Count; i++)
{
    <div class="form-check">
        <input type="checkbox" asp-for="@Model.Input.Hobbies[i].IsSelected"/>
        <label asp-for="@Model.Input.Hobbies[i].IsSelected">@Model.Input.Hobbies[i].Name</label>
        <input type="hidden" asp-for="@Model.Input.Hobbies[i].Id"/>
        <input type="hidden" asp-for="@Model.Input.Hobbies[i].Name"/>
    </div>
 }
(变量i=0;i 但是在渲染
视图时
会出现以下错误:

NullReferenceException:对象引用未设置为对象的实例。

在这一行:

@for(var i=0;i


我哪里出错了?

如果其他人遇到同样的问题,解决方法是更改:

public class SignupModel : PageModel
{
    [BindProperty]
    public SignupPageModel Input { get; set; }

    public void OnGet()
    {
        var model = new SignupPageModel();
        model.Hobbies = _repo.GetHobbiesCheckBoxGroup();
    }
}
为此:

public class SignupModel : PageModel
{
    [BindProperty]
    public SignupPageModel Input { get; set; }

    public void OnGet()
    {
        Input = new SignupPageModel();
        Input.Hobbies = _repo.GetHobbiesCheckBoxGroup();
    }
}
public class SignupModel : PageModel
{
    [BindProperty]
    public SignupPageModel Input { get; set; }

    public void OnGet()
    {
        Input = new SignupPageModel();
        Input.Hobbies = _repo.GetHobbiesCheckBoxGroup();
    }
}