public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } _context.Attach(Movie).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MovieExists(Movie.ID)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } _context.Attach(Movie).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } //this handles if a movie has been deleted by one client while being edited by another catch (DbUpdateConcurrencyException) { if (!MovieExists(Movie.ID)) { return(NotFound()); } else { throw; } } //if no errors, return to the list return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } _context.Attach(Movie).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { // 处理并发异常,一个用户编辑了电影,另一个用户立即删除电影,则前一个用户保存时会出现并发问题。 if (!MovieExists(Movie.ID)) { return(NotFound()); } else { throw; } } // 注意区别./Index 和 Index 是当前路径下的Index页面,/Index是根目录Pages下面的Index页面 return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync() { // Use LINQ to get list of genres. IQueryable <string> genreQuery = from m in _context.MyMovie orderby m.Genre select m.Genre; var movies = from m in _context.MyMovie select m; if (!ModelState.IsValid) { return(Page()); } _context.Attach(MyMovie).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MyMovieExists(MyMovie.MyMovieID)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Index")); }