Μέχρι τώρα όλα τα
Project που έχω κάνει
είναι σε ASP.NET αλλά εδώ και μερικές μέρες με έχει
βάλει το αφεντικό μου στο τρυπάκι να μπούμε στον κόσμο του ASP.NET MVC. Έχω προχωρήσει
αρκετά αλλά έχω κολλήσει σε μία many to many relationship. Για βρω λύση δημιούργησα ένα απλό project με Authors και Books. Το model μου έχει την ακόλουθη δομή:
namespace AuthorsAndBooks.Models
{
public class Author
{
public Author()
{
this.AuthorsToBooks = new HashSet<AuthorToBook>();
}
public int AuthorID { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public virtual ICollection<AuthorToBook> AuthorsToBooks { get; set; }
}
}
namespace AuthorsAndBooks.Models
{
public class Book
{
public Book()
{
this.AuthorsToBooks = new HashSet<AuthorToBook>();
}
public int BookID { get; set; }
public string Title { get; set; }
public virtual ICollection<AuthorToBook> AuthorsToBooks { get; set; }
}
}
namespace AuthorsAndBooks.Models
{
public class AuthorToBook
{
public int AuthorToBookID { get; set; }
public int AuthorID { get; set; }
public int BookID { get; set; }
public virtual Author Author { get; set; }
public virtual Book Book { get; set; }
}
}
namespace AuthorsAndBooks.Models
{
public class MyDbContext : DbContext
{
public DbSet<Author> Authors { get; set; }
public DbSet<AuthorToBook> AuthorsToBooks { get; set; }
public DbSet<Book> Books { get; set; }
}
}
Στο view edit έχω τις ακόλουθες εντολές:
@{
ViewBag.Title = "Edit";
AuthorsAndBooks.Models.MyDbContext db = new AuthorsAndBooks.Models.MyDbContext();
var Results = from b in db.Books
join ab in db.AuthorsToBooks on b.BookID equals ab.BookID
where ab.AuthorID.Equals(Model.AuthorID)
select b;
}
Και στο HTML για να εμφανίσω τα checkboxes έχω τις ακόλουθες γραμμές:
<br /><b>Books</b><br />
@foreach (var item in Results)
{
<input name="CategoryIDs" id="Value@item.BookID" type="checkbox" value="@item.BookID" checked="checked" />@item.Title<br />
}
Τα checkbox εμφανίζονται στην οθόνη μου
κανονικά το θέμα είναι μετά τις αλλαγές πώς μπορώ στον Controller μου να βρω τις αλλαγές που έχουν
γίνει στα checkbox ώστε να ενημερώσω τη βάση δεδομένων μου;