рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдареНрдпрдХреНрд░рдоред ASP.NET MVC рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдмреБрдирд┐рдпрд╛рджреА CRUD рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ

рдпрд╣ рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ ASP.NET MVC 3 рд╡рд┐рдХрд╛рд╕ рд▓реЗрдЦ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред рдЖрдк рдирд┐рдореНрди рд▓рд┐рдВрдХ рдкрд░ рдкрд╣рд▓рд╛ рдЕрдзреНрдпрд╛рдп рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: ASP.NET MVC рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛рдирд╛ ред

рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдПрдорд╡реАрд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рдЬреЛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо CRUD (рдХреНрд░рд┐рдПрдЯ, рд░реАрдб, рдЕрдкрдбреЗрдЯ, рдбрд┐рд▓реАрдЯ) рдлрдВрдХреНрд╢рдирд▓рд┐рдЯреА рдХреЛ рдмрдирд╛рддреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦреЗрдВрдЧреЗ рдЬреЛ MVC рд╕реНрдХреИрдлреЛрд▓реНрдбрд┐рдВрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рд╡реНрдпреВрдЬ рдореЗрдВ рдмрдирд╛рддрд╛ рд╣реИред

рдиреЛрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдкрд░рдд рдХреЗ рдмреАрдЪ рдПрдХ рдЕрдореВрд░реНрдд рдкрд░рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП "рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА" рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрдо рдмрд╛рдд рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рдж рдореЗрдВ, рдмрд╛рдж рдХреЗ рдкрд╛рдареЛрдВ ( рдХрд╛рд░реНрдп рдкреИрдЯрд░реНрди рдХреЗ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдФрд░ рдпреВрдирд┐рдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ ) рдореЗрдВ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдкрд╛рда рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ:

imageimageimageimage

рд╡рд┐рд╡рд░рдг рдкреГрд╖реНрда рдмрдирд╛рдирд╛


рд╡рд┐рд╡рд░рдг рдкреГрд╖реНрда HTML рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдирд░реЛрд▓рдореЗрдВрдЯреНрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред

рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ \ рд╡рд┐рджреНрдпрд╛рд░реНрдереАрдХрдВрдЯреНрд░реЛрд▓рд░ ред рд╡рд┐рд╡рд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕ рд╡рд┐рдзрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╣реИ:

public ViewResult Details(int id) { Student student = db.Students.Find(id); return View(student); } 

рдЦреЛрдЬ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд░рд┐рдд рдЖрдИрдбреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЕрдиреБрд░реВрдк рдПрдХ рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдИрдбреА рдорд╛рди рд▓рд┐рдВрдХ рдХреЗ рд╡рд┐рд╡рд░рдг рдкреГрд╖реНрда рдкрд░ рд╕реНрдерд┐рдд рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЦреБрд▓реЗ рджреГрд╢реНрдп \ рдЫрд╛рддреНрд░ \ рд╡рд┐рд╡рд░рдг ред Cshtml ред рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ DisplayFor рд╕рд╣рд╛рдпрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 <div class="display-label">LastName</div> <div class="display-field"> @Html.DisplayFor(model => model.LastName) </div> 

рдирд╛рдорд╛рдВрдХрди рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд╛рдорд╛рдВрдХрди рдлрд╝реАрд▓реНрдб рдЯреИрдЧ рд╕реЗ рдкрд╣рд▓реЗ EnrolmentDate рдлрд╝реАрд▓реНрдб рдХреЗ рдмрд╛рдж рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 <div class="display-label"> @Html.LabelFor(model => model.Enrollments) </div> <div class="display-field"> <table> <tr> <th>Course Title</th> <th>Grade</th> </tr> @foreach (var item in Model.Enrollments) { <tr> <td> @Html.DisplayFor(modelItem => item.Course.Title) </td> <td> @Html.DisplayFor(modelItem => item.Grade) </td> </tr> } </table> </div> 

рдпрд╣ рдХреЛрдб рдПрдирд░реЛрд▓рдореЗрдВрдЯреНрд╕ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдирд╛рдорд╛рдВрдХрди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд╛рдареНрдпрдХреНрд░рдо рдФрд░ рдЧреНрд░реЗрдб рдХрд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреЛрд░реНрд╕ рдХрд╛ рдирд╛рдо рджрд╛рдЦрд┐рд▓рд╛ рдЗрдХрд╛рдИ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдирд┐рд╣рд┐рдд рдкрд╛рдареНрдпрдХреНрд░рдо рдЗрдХрд╛рдИ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдиреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд▓реЛрдбрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╡реЗрд░реА рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдЙрддреНрд╕реБрдХ рд▓реЛрдбрд┐рдВрдЧ рд░реАрдбрд┐рдВрдЧ рд░рд┐рд▓реЗрдЯреЗрдб рдбреЗрдЯрд╛ ред)

рд╕реНрдЯреВрдбреЗрдВрдЯреНрд╕ рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдбрд┐рдЯреЗрд▓реНрд╕ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

image

рдХреНрд░рд┐рдПрдЯ рдкреЗрдЬ рдмрдирд╛рдирд╛


рдирд┐рдпрдВрддреНрд░рдХреЛрдВ \ StudentController.cs рдореЗрдВ , HttpPost рдмрдирд╛рдПрдБ рд╡рд┐рдзрд┐ рдХреЛрдб рдмрджрд▓реЗрдВ:

 [HttpPost] public ActionResult Create(Student student) { try { if (ModelState.IsValid) { db.Students.Add(student); db.SaveChanges(); return RedirectToAction("Index"); } } catch (DataException) { //Log the error (add a variable name after DataException) ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); } return View(student); } 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо ASP.NET MVC рдореЙрдбрд▓ рдмрд╛рдЗрдВрдбрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдХреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рдВрдЧрдд рд╕реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред ( рдореЙрдбрд▓ рдмрд╛рдЗрдВрдбрд░ ASP.NET MVC рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ рдЬреЛ рдлреЙрд░реНрдо рд╕реЗ рдЖрдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдореЙрдбрд▓ рдмрд╛рдЗрдВрдбрд░ рдлреЙрд░реНрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЙрдбрд▓ рдмрд╛рдЗрдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдлреЙрд░реНрдо рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╕рдВрдкрддреНрддрд┐ рдореВрд▓реНрдпред)

рдЯреНрд░рд╛рдЗ-рдХреИрдЪ рдмреНрд▓реЙрдХ рд╣рдорд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмреАрдЪ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рд╣реИ рдФрд░ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп рдХрд┐рд╕реА DataException рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдЕрдкрд╡рд╛рдж рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдорд╛рдирдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдРрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЖрдорддреМрд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рдЪреАрдЬ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмрд╕ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдб рдореЗрдВ рджреГрд╢реНрдп \ рдЫрд╛рддреНрд░ \ рдмрдирд╛рдПрдБ ред cshtml рд╡рд┐рд╡рд░рдг рд╕реЗ рдХреЛрдб рдХреЗ рд╕рдорд╛рди рд╣реИ ред EditorFor рдФрд░ ValidationMessageFor рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде cshtml, DisplayFl рд╣реЗрд▓реНрдкрд░ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

 <div class="editor-label"> @Html.LabelFor(model => model.LastName) </div> <div class="editor-field"> @Html.EditorFor(model => model.LastName) @Html.ValidationMessageFor(model => model.LastName) </div> 

рдореЗрдВ рдмрдирд╛рдПрдБ ред cshtml рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕реНрдЯреВрдбреЗрдВрдЯреНрд╕ рдЯреИрдм рдкрд░ рдФрд░ рдХреНрд░рд┐рдПрдЯ рдиреНрдпреВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

image

рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИред рдирд╛рдо рдФрд░ рдХреБрдЫ рдЧрд▓рдд рддрд╛рд░реАрдЦ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рддреНрд░реБрдЯрд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдБ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

image

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рдЦрд░рд╛рдм рдбреЗрдЯрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд┐рдирд╛рдВрдХ рдХреЛ рд╕рд╣реА 9/1/2005 рдкрд░ рдмрджрд▓реЗрдВ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рдкрд░ рдирдП рдЫрд╛рддреНрд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдБ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред

image

рдПрдбрд┐рдЯ рдкреЗрдЬ рдмрдирд╛рдПрдВ


рдирд┐рдпрдВрддреНрд░рдХреЛрдВ \ StudentController.cs рдореЗрдВ, HttpGet рд╕рдВрдкрд╛рджрди рд╡рд┐рдзрд┐ (HttpPost рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдмрд┐рдирд╛ рдПрдХ) рдЪрдпрдирд┐рдд рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

HttpPost рдПрдбрд┐рдЯ рд╡рд┐рдзрд┐ рдХреЛрдб рдХреЛ рдирд┐рдореНрди рдХреЛрдб рд╕реЗ рдмрджрд▓реЗрдВ:

 [HttpPost] public ActionResult Edit(Student student) { try { if (ModelState.IsValid) { db.Entry(student).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } } catch (DataException) { //Log the error (add a variable name after DataException) ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); } return View(student); } 

HttpPost Create рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЛрдб рд╕рдорд╛рди рдерд╛, рд▓реЗрдХрд┐рди рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдЗрдХрд╛рдИ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдХреЛрдб рдПрдХ рдЗрдХрд╛рдИ рдЧреБрдг рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред SaveChanges рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрдкрддреНрддрд┐ Entity рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SQL рдХреНрд╡реЗрд░реА рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рднреА рдХреЙрд▓рдо рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЫреБрдЖ рдирд╣реАрдВ рд╣реИред рд╕рдорд╕рд╛рдордпрд┐рдХ рдореБрджреНрджреЛрдВ рдХреА рдЕрдирджреЗрдЦреА рдХреА рдЬрд╛рддреА рд╣реИред (рдЖрдк рдХрдВрд╕реЙрд▓рд┐рдбреЗрдЯрд┐рдВрдЧ рдХрдВрд╕реАрдбрд░ рдореЗрдВ рдХрдВрд╕рд░реНрдЯ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред)

рдПрдВрдЯрд┐рдЯреА рд╕реНрдЯреЗрдЯреНрд╕ рдФрд░ рдЕрдЯреИрдЪ рдФрд░ рд╕реЗрд╡рдЪреЗрдВрдЬ рдореЗрдердбреНрд╕


рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрджрд░реНрдн рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ SaveChanges рд╡рд┐рдзрд┐ рдХреЛ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрдб рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдирдИ рдЗрдХрд╛рдИ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, рдЗрд╕ рдЗрдХрд╛рдИ рдХреА рд╕реНрдерд┐рддрд┐ рдЬреЛрдбрд╝рдХрд░ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред рддрдм, рдЬрдм SaveChanges рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрджрд░реНрдн SQL INSERT рдХреНрд╡реЗрд░реА рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдЗрдХрд╛рдИ рд░рд╛рдЬреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рд╕реНрдерд┐рддрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ, рдЖрдк рдЗрдХрд╛рдИ рдХреЛ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдЧреБрдгреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред SaveChanges рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, Entity Framework рдПрдХ рдЕрджреНрдпрддрди SQL рдХреНрд╡реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдЧреБрдгреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдорд╛рди рдмрджрд▓ рдЧрдП рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрдХрд╛рдИ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрджрд░реНрдн рдЙрджрд╛рд╣рд░рдг рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм HttpPost рдПрдХ рдирдпрд╛ рдЕрдиреБрд░реЛрдз рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрджрд░реНрдн рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрдХрд╛рдИ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЬрдм SaveChanges рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Entity Framework рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рднреА рдХреЙрд▓рдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрджрд░реНрдн рдХреЛ рдЕрдм рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЧреБрдг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрджрд▓ рджрд┐рдП рдЧрдП рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЕрдкрдбреЗрдЯ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕рдВрдкрд╛рджрд┐рдд рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ HttpPost рдПрдбрд┐рдЯ рдХреЙрд▓ рдХреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдХрд░ рдореВрд▓ рдорд╛рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЫрд┐рдкреЗ рд╣реБрдП рдлрд╝реЙрд░реНрдо рдлрд╝реАрд▓реНрдб) рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдЖрдк рдореВрд▓ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрдХрд╛рдИ рдХреЗ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЕрдЯреИрдЪ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрдХрд╛рдИ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ SaveChanges рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдРрдб / рдЕрдЯреИрдЪ рдФрд░ рдПрдВрдЯрд┐рдЯреА рд╕реНрдЯреЗрдЯреНрд╕ рдФрд░ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓реЛрдХрд▓ рдбреЗрдЯрд╛ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВред

рдХреЛрдб рдореЗрдВ рджреГрд╢реНрдп \ рдЫрд╛рддреНрд░ \ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ ред cshtml Create рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рдорд╛рди рд╣реИ ред cshtml , рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕реНрдЯреВрдбреЗрдВрдЯреНрд╕ рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдПрдбрд┐рдЯ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред

image

рдорд╛рди рдмрджрд▓реЗрдВ рдФрд░ рд╕рд╣реЗрдЬреЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред

image

рдбрд┐рд▓реАрдЯ рдкреЗрдЬ рдмрдирд╛рдПрдВ


рдирд┐рдпрдВрддреНрд░рдХреЛрдВ \ StudentController.cs рдореЗрдВ, HttpGet рд╣рдЯрд╛рдПрдБ рд╡рд┐рдзрд┐ рдЪрдпрдирд┐рдд рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд┐рд╡рд░рдг рдФрд░ рдкреВрд░реНрд╡ рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдкрдиреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрджрд┐ SaveChanges рдХреЙрд▓ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рдзрд┐ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рджреГрд╢реНрдп рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрдкрдбреЗрдЯ рдФрд░ рдСрдкрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде, рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрд╢рди рдХреЛ рднреА рджреЛ рддрд░реАрдХреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдз рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рджреГрд╢реНрдп рджрд┐рдЦрд╛рддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдпрд╛ рд░рджреНрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ POST рдЕрдиреБрд░реЛрдз рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ HttpPost Delete рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ HttpPost Delete рд╡рд┐рдзрд┐ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдпрд╛рд╕-рдХреИрдЪ рдЕрдкрд╡рд╛рдж рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ HttpPost Delete рд╡рд┐рдзрд┐ HttpGet Delete рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ, рдпрд╣ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреА рд╣реИред HttpGet Delete рд╡рд┐рдзрд┐ рдлрд┐рд░ рд╕реЗ рдПрдХ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдкреГрд╖реНрда рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдкрд╛рда рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП HttpGet Delete рд╡рд┐рдзрд┐ рдХреЛрдб рдХреЛ рдирд┐рдореНрди рдХреЛрдб рд╕реЗ рдмрджрд▓реЗрдВ:

 public ActionResult Delete(int id, bool? saveChangesError) { if (saveChangesError.GetValueOrDefault()) { ViewBag.ErrorMessage = "Unable to save changes. Try again, and if the problem persists see your system administrator."; } return View(db.Students.Find(id)); } 

рдпрд╣ рдХреЛрдб рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмреВрд▓рд┐рдпрди рдкреНрд░рдХрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред HttpPost Delete рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж HttpGet Delete рдФрд░ рдЯреНрд░реВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╢реВрдиреНрдп (рдЧрд▓рдд) рд╣реИред

рдирд┐рдореНрди рдХреЛрдб рдХреЗ рд╕рд╛рде HttpPost Delete (DeleteConfirmed) рд╡рд┐рдзрд┐ рдХреЛрдб рдХреЛ рдмрджрд▓реЗрдВ рдЬреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ:

 [HttpPost, ActionName("Delete")] public ActionResult DeleteConfirmed(int id) { try { Student student = db.Students.Find(id); db.Students.Remove(student); db.SaveChanges(); } catch (DataException) { //Log the error (add a variable name after DataException) return RedirectToAction("Delete", new System.Web.Routing.RouteValueDictionary { { "id", id }, { "saveChangesError", true } }); } return RedirectToAction("Index"); } 

рдХреЛрдб рдЪрдпрдирд┐рдд рдЗрдХрд╛рдИ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдЯрд╛рдП рдЧрдП рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЗрдХрд╛рдИ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╣рдЯрд╛рдП рдЧрдП рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред SaveChanges рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдПрдХ SQL DELETE рдХреНрд╡реЗрд░реА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред

рдпрджрд┐ рдкреНрд░рджрд░реНрд╢рди рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдирд╛рд╡рд╢реНрдпрдХ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреЛрдб рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдмрджрд▓рдХрд░ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ:

 Student studentToDelete = new Student() { StudentID = id }; db.Entry(studentToDelete).State = EntityState.Deleted; 

рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде, рд╣рдо рдХреЗрд╡рд▓ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдХреЛ рддреБрд░рдВрдд рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрдХрд╛рдИ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╣рдЯрд╛рдП рдЧрдП рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдЗрдХрд╛рдИ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, HttpGet Delete рд╡рд┐рдзрд┐ рдбреЗрдЯрд╛ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рддреА рд╣реИред рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдз (рдпрд╛, рд╕рдВрдкрд╛рджрди, рдирд┐рд░реНрдорд╛рдг, рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдХрд╛рд░реНрд░рд╡рд╛рдИ) рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдЙрд▓реНрд▓рдВрдШрди рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, ASP.NET MVC рдЯрд┐рдк # 46 рджреЗрдЦреЗрдВ - рд╣рдЯрд╛рдПрдБ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕реНрдЯреАрдлрди рд╡рд╛рд▓реНрдерд░ рдХреЗ рдмреНрд▓реЙрдЧ рдкрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЫреЗрдж рдмрдирд╛рддреЗ рд╣реИрдВ ред

рджреГрд╢реНрдп \ рдЫрд╛рддреНрд░ \ рд╣рдЯрд╛рдПрдБ рдореЗрдВ ред cshtml h2 рдФрд░ h3 рдХреЗ рдмреАрдЪ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

<p class = "error"> @ ViewBag.ErrorMessage </ p>

рдЫрд╛рддреНрд░ рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдбрд┐рд▓реАрдЯ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

image

рд╣рдЯрд╛рдПрдБ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рд▓реЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЫрд╛рддреНрд░ рдХреЗ рдмрд┐рдирд╛ рд╣рдордиреЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ (рдЖрдк рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХрд╛рдВрдЙрдЯрд░ рдкрд╛рда рдореЗрдВ рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЛрдб рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВрдЧреЗред)

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреЛрдИ рдЦреБрд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ


рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рднреА рдХрдиреЗрдХреНрд╢рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрдВрдж рдереЗ рдФрд░ рдЙрдирдХреЗ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджрд░реНрдн рдирд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдк рд╕реНрдЯреВрдбреЗрдВрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд╕реНрдЯреВрдбреЗрдВрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдВрдд рдореЗрдВ рдбрд┐рд╕реНрдкреЛрдЬрд▓ рд╡рд┐рдзрд┐ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред рд╕реАрдПрд╕ :

 protected override void Dispose(bool disposing) { db.Dispose(); base.Dispose(disposing); } 

рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдЗрдбреАрд╕реЛрдкрд╛рдпрд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЛрдб рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдЙрджрд╛рд╣рд░рдг рдХреЛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдкреЛрдЬрд╝ (рдмреВрд▓) рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред

рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рдЫрд╛рддреНрд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ CRUD рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рдкрд╛рда рдореЗрдВ, рд╣рдо рдЫрдБрдЯрд╛рдИ рдФрд░ рдкреГрд╖реНрдард╛рдВрдХрди рдЬреЛрдбрд╝рдХрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдкреГрд╖реНрда рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдмреЗрд▓реЛрдЯреЗрд░реНрд╕рдХреЛрд╡рд╕реНрдХреА ( рдПрд╣рд░рд┐рдорди ) рдХреЗ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In133549/


All Articles