Я пишу Библиотечное приложение (добавляю, удаляю) книги из БД.Я использую Razor Pages .NET CORE 2.2. Я добавил раскрывающийся список в свой проект, и теперь, когда я нажимаю кнопку «Отправить» в моей форме, в базу данных ничего не добавляется, и я не знаю почему ... Есть идеи?
Мой код:
1) Genre.cs
namespace BIBL.Model
public class Genre
{
[Key]
public int GenreID { get; set; }
public string GenreName { get; set; }
}
ApplicationDbContext.cs
namespace BIBL.Data
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<Book> Book { get; set; }
public DbSet<ApplicationUser> ApplicationUser { get; set; }
public DbSet<FavBook> FavBook { get; set; }
public DbSet<Genre> Genre { get; set; }
}
}
И страница бритвы, где я добавляю книгу.
AddBook.cshtml.cs
public class AddBookModel : PageModel
{
private readonly ApplicationDbContext _db;
[BindProperty]
public Book Book { get; set; }
public int SelectedGenreId { set; get; }
public List<SelectListItem> GenreItems { set; get; }
public AddBookModel(ApplicationDbContext db)
{
_db = db;
}
public IActionResult OnGet()
{
GenreItems = _db.Genre
.Select(a => new SelectListItem
{
Value = a.GenreID.ToString(),
Text = a.GenreName
})
.ToList();
return Page();
}
public async Task <IActionResult> OnPostAsync(ServiceType ServiceType)
{
if(!ModelState.IsValid)
{
return Page();
var selectedGenreId = this.SelectedGenreId;
}
_db.Book.Add(Book);
await _db.SaveChangesAsync();
return RedirectToPage("Index");
}
Затем AddBook.cshtml
<div class="col-5">
<select asp-for="SelectedGenreId" asp-items="@Model.GenreItems">
<option>Select one</option>
</select>
</div>