выпадающий список asp.NET Razor Pages из формы БД - PullRequest
0 голосов
/ 29 мая 2019

Я пишу Библиотечное приложение (добавляю, удаляю) книги из БД.Я использую 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>
...