BooksControllers.cs
HomeController.cs
, EF (Entity Framework) automatically generates another controller BooksController.cs
as follows:
|
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using BookStore1.Data; using BookStore1.Models; namespace BookStore1.Controllers { public class BooksController : Controller { private readonly BookStore1Context _context; public BooksController( BookStore1Context context ) { _context = context; } // GET: Books public async Task<IActionResult> Index( ) { return View( await _context.Book.ToListAsync( ) ); } // GET: Books/Details/5 public async Task<IActionResult> Details( int? id ) { if ( id == null ) { return NotFound( ); } var book = await _context.Book.FirstOrDefaultAsync( m => m.Id == id ); if ( book == null ) { return NotFound( ); } return View( book ); } // GET: Books/Create public IActionResult Create( ) { return View( ); } // POST: Books/Create // To protect from overposting attacks, // enable the specific properties you want to bind to. // For more details, see http://go.microsoft.com/fwlink/?LinkId=317598. [ HttpPost ] [ ValidateAntiForgeryToken ] public async Task<IActionResult> Create( [ Bind( "Id,Title,Genre,Price,PublishDate" ) ] Book book ) { if ( ModelState.IsValid ) { _context.Add( book ); await _context.SaveChangesAsync( ); return RedirectToAction( nameof( Index ) ); } return View( book ); } // GET: Books/Edit/5 public async Task<IActionResult> Edit( int? id ) { if ( id == null ) { return NotFound( ); } var book = await _context.Book.FindAsync( id ); if ( book == null ) { return NotFound( ); } return View( book ); } // POST: Books/Edit/5 // To protect from overposting attacks, enable the specific properties you want to bind to. // For more details, see http://go.microsoft.com/fwlink/?LinkId=317598. [ HttpPost ] [ ValidateAntiForgeryToken ] public async Task<IActionResult> Edit( int id, [ Bind( "Id,Title,Genre,Price,PublishDate" ) ] Book book ) { if ( id != book.Id ) { return NotFound( ); } if ( ModelState.IsValid ) { try { _context.Update( book ); await _context.SaveChangesAsync( ); } catch ( DbUpdateConcurrencyException ) { if ( !BookExists( book.Id ) ) { return NotFound( ); } else { throw; } } return RedirectToAction( nameof( Index ) ); } return View ( book ); } // GET: Books/Delete/5 public async Task<IActionResult> Delete( int? id ) { if ( id == null ) { return NotFound( ); } var book = await _context.Book .FirstOrDefaultAsync( m => m.Id == id ); if ( book == null ) { return NotFound( ); } return View( book ); } // POST: Books/Delete/5 [ HttpPost, ActionName( "Delete" ) ] [ ValidateAntiForgeryToken ] public async Task<IActionResult> DeleteConfirmed( int id ) { var book = await _context.Book.FindAsync( id ); if ( book != null ) { _context.Book.Remove( book ); } await _context.SaveChangesAsync( ); return RedirectToAction( nameof( Index ) ); } private bool BookExists( int id ) { return _context.Book.Any( e => e.Id == id ); } } } |
“According to most studies, people’s number one fear is public speaking. Number two is death. Death is number two. Does that sound right? This means to the average person, if you go to a funeral, you’re better off in the casket than doing the eulogy.” — Jerry Seinfeld |