如何使用ASP.Net MVC中的多个复选框

时间:2015-10-11 07:46:29

标签: asp.net-mvc

我在mvc中很新,基本上我有webform背景。所以现在面临问题来渲染和使用多个check box

我已经开发了我的示例视图模型,现在需要帮助渲染多个checkboxes。一组checkboxes用于爱好,一组checkboxes用于电影。

还希望当用户选择checkbox然后我想要在同一视图中显示以表格格式检查的te checkboxes。它会粘贴我的示例视图模型代码并期待帮助。如果需要在我的viewmodel代码中修改任何内容,请执行此操作。

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();
        }

感谢

2 个答案:

答案 0 :(得分:1)

不是100%肯定你的要求,但我会从以下内容开始:

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

答案 1 :(得分:0)

我不确定你要在这里取得什么成就,但我可以给出一个开始的方向。首先,查看Html扩展方法CheckBoxFor

从描述中可以看出,它需要bool,因此您必须扩展类以包含bool属性。例如IsSelected。我将实现以下示例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" />
}

如果需要,您也可以使用此Hobby课程。 这是你得到的:

enter image description here

以下是帖子后的结果:

enter image description here