Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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
Asp.net mvc 如何在ASP.NETMVC中使用多个复选框_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何在ASP.NETMVC中使用多个复选框

Asp.net mvc 如何在ASP.NETMVC中使用多个复选框,asp.net-mvc,Asp.net Mvc,我对mvc相当陌生,基本上我有webform背景。所以,现在面临的问题是渲染和使用多个复选框 我已经开发了示例视图模型,现在需要位帮助来渲染多个复选框。一组复选框用于业余爱好,一组复选框用于电影 还希望当用户选择复选框时,我想显示在同一视图中以表格格式选中了哪些复选框。此处粘贴示例视图模型代码,希望得到帮助。如果需要在myviewmodelcode中修改任何内容,请执行 public class MyViewModel { public List<Movies>

我对
mvc
相当陌生,基本上我有
webform
背景。所以,现在面临的问题是渲染和使用多个
复选框

我已经开发了示例视图模型,现在需要位帮助来渲染多个
复选框。一组
复选框用于业余爱好,一组
复选框用于电影

还希望当用户选择
复选框时
,我想显示在同一视图中以表格格式选中了哪些
复选框
。此处粘贴示例视图模型代码,希望得到帮助。如果需要在my
viewmodel
code中修改任何内容,请执行

public class MyViewModel
    {
        public List<Movies> movies { get; set; }
        public List<Hobbies> hobbies { get; set; }
    }

    public class Movies
    {
        public int ID = 0;
        public string Name = string.Empty;
    }

    public class Hobbies
    {
        public int ID = 0;
        public string Name = string.Empty;
    }

  public ActionResult About()
        {
            var oVm = new MyViewModel
            {
                hobbies = new List<Hobbies>
                {
                    new Hobbies {ID=1,Name="Test1"},
                    new Hobbies {ID=2,Name="Test2"},
                    new Hobbies {ID=3,Name="Test3"},
                    new Hobbies {ID=4,Name="Test4"},
                    new Hobbies {ID=5,Name="Test5"}
                },

                movies = new List<Movies>
                {
                    new Movies {ID=1,Name="Test1"},
                    new Movies {ID=2,Name="Test2"},
                    new Movies {ID=3,Name="Test3"},
                    new Movies {ID=4,Name="Test4"},
                    new Movies {ID=5,Name="Test5"}
                }
            };

            return View();
        }
公共类MyViewModel
{
公共列表电影{get;set;}
公共列表爱好{get;set;}
}
公共级电影
{
公共int ID=0;
公共字符串名称=string.Empty;
}
公共课爱好
{
公共int ID=0;
公共字符串名称=string.Empty;
}
关于()的公共行动结果
{
var oVm=新的MyViewModel
{
爱好=新列表
{
新爱好{ID=1,Name=“Test1”},
新爱好{ID=2,Name=“Test2”},
新爱好{ID=3,Name=“Test3”},
新爱好{ID=4,Name=“Test4”},
新爱好{ID=5,Name=“Test5”}
},
电影=新列表
{
新电影{ID=1,Name=“Test1”},
新电影{ID=2,Name=“Test2”},
新电影{ID=3,Name=“Test3”},
新电影{ID=4,Name=“Test4”},
新电影{ID=5,Name=“Test5”}
}
};
返回视图();
}

谢谢

我不是100%确定你想要什么,但我想从以下内容开始:

    @for(int i = 0; i < Model.Chests.Count; i++)
    {
        @Html.DisplayFor(m => Model.movies[i].Id)
        @Html.CheckBoxFor(m => Model.movies[i].Selected);
    }
@for(int i=0;iModel.movies[i].Id)
@Html.CheckBoxFor(m=>Model.movies[i].Selected);
}

我不太确定你在这里想要实现什么,但我可以给你一个开始的方向。首先,检查Html扩展方法

从描述中可以看出,它需要一个
bool
,因此必须扩展类以包含bool属性<例如,代码>已选择
。我将实现以下示例
Movie
类:

public class Movie
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsSelected { get; set; }       
}
然后在视图中,您可以迭代移动集合,并为每个移动显示一个复选框,如下所示:

@model MyViewModel
@using (Html.BeginForm())
{
    for (int i = 0; i < Model.Movies.Count; i++)
    {
        <div>Movie Name: @Model.Movies[i].Name @Html.CheckBoxFor(x => Model.Movies[i].IsSelected)</div>     
        <div>@Html.HiddenFor(x => Model.Movies[i].Id)</div> //This will give you the id
    }

    <input type="submit" value="post" />
}
@model MyViewModel
@使用(Html.BeginForm())
{
for(int i=0;iModel.Movies[i].IsSelected)
@Html.HiddenFor(x=>Model.Movies[i].Id)//这将为您提供Id
}
}
如果您愿意,您也可以在
Hobby
类中采用这种方法。 以下是您得到的:

以下是发布后的结果:


我不明白你想要实现什么,以及你觉得有什么困难?发布您的视图因此我是MVC新手,我无法为视图编写代码,因为我想为电影和爱好显示两组复选框。我想使用checkboxforhelper………查看代码是什么。我用这种方式处理列表
cabiods=newlist
,所以这个代码
@Html。checkboxfor(x=>Model.Movies[i].IsSelected)
将在操作返回具有列表的VM时起作用。我们可以填充模型吗?我是问B因为我是mvc的新手?从你的图片上看,为什么选中复选框和表单post时名称会变为null?“名称会变为null”,因为它没有发布到操作中。您可以像id一样将其添加为隐藏输入,并将其发布。您可以在操作中填充列表,并将MyViewModel对象传递给视图,如下所示:
返回视图(oVm)