我有一些与多对多关系的问题,保存了创建视图的结果.
我想为新的用户配置文件创建一个创建页面,该配置文件有一个清单,可以让他们选择课程(多对多关系).我的视图从Courses数据库中获取记录,并使用复选框显示所有记录.
一旦用户发布数据,我想更新我的userprofile模型,以及courses多对多关系.那是我遗漏的代码!
我是MVC的新手,我一直在研究,但我还没有做到.
我遵循这个例子:http: //www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/updating-related-data-with-the-entity-framework-in-an- ASP净MVC应用程序
这是模型:
public class UserProfile
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Courses> usercourses { get; set; }
}
public class Courses
{
public int CourseID { get; set; }
public string CourseDescripcion { get; set; }
public virtual ICollection<UserProfile> UserProfiles { get; set; }
}
public class UserProfileDBContext : DbContext
{
public DbSet<UserProfile> UserProfiles { …Run Code Online (Sandbox Code Playgroud) asp.net-mvc many-to-many entity-framework razor asp.net-mvc-3
我List想向用户显示大约20个项目,每个项目旁边都有一个复选框(Available我的ViewModel上的属性).
提交表单时,我希望能够通过SelectionsViewModel 上的属性将每个复选框的值传递回我的控制器方法.
我将如何使用MVC中的Form Helper类进行此操作?这甚至可能吗?
PS:我不想要一个列表框,用户可以只突出显示多个项目.
我正在使用ASP.NET MVC 4和Entity Framework,我正在寻找一些方法来创建多个关系和我的数据库中的复选框,用于创建/编辑控制器和视图,我已经找到了@Slauma答案的答案创建MVC 4 -许多一对多的关系,复选框 ,但是,我真的很想看看这个延伸到编辑和删除的功能,以及想在这个解决方案的一些其他的合作伙伴.可能有人请告诉我怎么会填充在编辑控制器方法ClassificationSelectViewModel拿到两个"确认"和"取消选中"的价值观?这是一个Matt Flowers问题,也将解决我的问题.
我试图像在这个线程中做同样的事情,但我得到错误:
"System.Collections.Generic.IEnumerable"不包含"添加",并没有扩展方法"添加"接受型"System.Collections.Generic.IEnumerable"的第一个参数的定义可以找到(是否缺少using指令或汇编参考?)
这是我的代码:
[HttpPost]
public ActionResult Create(ANIME anime)
{
var db = new MainDatabaseEntities();
var newanime = new ANIME
{
ID_AN = anime.ID_AN,
TITLE_OR = anime.TITLE_OR,
TITLE_EN = anime.TITLE_EN,
GENRES = new List<GENRES>()
};
foreach (var selectedAnime in anime.GENRES.Where(c => c.isSelected))
{
var genre = new GENRES { ID_GE = selectedAnime.ID_GE };
db.GENRES.Attach(genre);
newanime.GENRES.Add(genre); <--- this is the error line
}
db.ANIME.Add(newanime);
db.SaveChanges();
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
ANIME:
public partial class ANIME
{
public int ID_AN { get; set; …Run Code Online (Sandbox Code Playgroud)