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
背景。所以,现在面临的问题是渲染和使用多个复选框
我已经开发了示例视图模型,现在需要位帮助来渲染多个复选框。一组复选框用于业余爱好,一组复选框用于电影
还希望当用户选择复选框时
,我想显示在同一视图中以表格格式选中了哪些复选框
。此处粘贴示例视图模型代码,希望得到帮助。如果需要在myviewmodel
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)代码>