我正在从db写图书馆应用程序(添加,删除)书籍。 我正在使用Razor Pages .NET CORE 2.2 我将dropdownlist添加到我的项目中,现在当我点击表单中的Submit按钮时,没有任何内容添加到数据库中,我也不知道为什么... 有什么想法吗?
我的代码:
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>
答案 0 :(得分:0)
我将其更改为
public async Task <IActionResult> OnPostAsync(Genre genre)
{
if (!ModelState.IsValid)
{
return Page();
}
var selectedGenreId = this.SelectedGenreId;
_db.Book.Add(Book);
await _db.SaveChangesAsync();
return RedirectToPage("Index");
}
}
但是它仍然无法正常工作。为什么?