using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using RazorPages.Data; using RazorPages.Models; namespace RazorPages.Pages.Climbs { public class EditModel : PageModel { private readonly RazorPages.Data.RazorPagesClimbContext _context; public EditModel(RazorPages.Data.RazorPagesClimbContext context) { _context = context; } [BindProperty] public Climb Climb { get; set; } = default!; public async Task OnGetAsync(int? id) { if (id == null) { return NotFound(); } var climb = await _context.Climb.FirstOrDefaultAsync(m => m.Id == id); if (climb == null) { return NotFound(); } Climb = climb; return Page(); } // To protect from overposting attacks, enable the specific properties you want to bind to. // For more information, see https://aka.ms/RazorPagesCRUD. public async Task OnPostAsync() { if (!ModelState.IsValid) { return Page(); } _context.Attach(Climb).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ClimbExists(Climb.Id)) { return NotFound(); } else { throw; } } return RedirectToPage("./Index"); } private bool ClimbExists(int id) { return _context.Climb.Any(e => e.Id == id); } } }