1 / 89

ASP.NET MVC

ASP.NET MVC. Tutoriál. Obsah. Založení projektu, přidání databáze Model Controllery, Routing a Pohledy Práce s daty (CRUD) Unit testy a Dependency injection. Založení projektu – co je třeba. Microsoft Visual Studio Mít nainstalovaný ASP.NET MVC. Založení projektu. Založení projektu.

Download Presentation

ASP.NET MVC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP.NET MVC Tutoriál

  2. Obsah • Založení projektu, přidání databáze • Model • Controllery, Routing a Pohledy • Práce s daty (CRUD) • Unit testy a Dependency injection

  3. Založení projektu – co je třeba • Microsoft Visual Studio • Mít nainstalovaný ASP.NET MVC

  4. Založení projektu

  5. Založení projektu

  6. Založení projektu • Struktura projektu: • Vygenerované základní stránky a UT

  7. Založení projektu

  8. Založení projektu

  9. Založení projektu

  10. Přidání databáze

  11. Přidání databáze

  12. Přidání databáze

  13. Přidání databáze

  14. Přidání databáze

  15. Přidání databáze

  16. Přidání databáze

  17. Přidání databáze

  18. Model

  19. Model

  20. Model

  21. Model

  22. Model - perzistence • Demonstrace LINQ query: NerdDinnerDataContext db = new NerdDinnerDataContext(); Dinner dinner = db.Dinners.Single(d => d.DinnerID == 1); dinner.Title = "Changed Title"; dinner.Description = "This dinner will be fun"; db.SubmitChanges();

  23. Model – perzistence lépe public class DinnerRepository {     private NerdDinnerDataContext db = new NerdDinnerDataContext(); public IQueryable<Dinner> FindAllDinners() {         return db.Dinners; }

  24. Model – perzistence lépe public IQueryable<Dinner> FindUpcomingDinners() {      return from dinner in db.Dinners               where dinner.EventDate > DateTime.Now              orderby dinner.EventDate                 select dinner; } public Dinner GetDinner(int id) {      return db.Dinners.SingleOrDefault(d => d.DinnerID == id); }

  25. Model – perzistence lépe     public void Add(Dinner dinner) {         db.Dinners.InsertOnSubmit(dinner);     }     public void Delete(Dinner dinner) {         db.RSVPs.DeleteAllOnSubmit(dinner.RSVPs);         db.Dinners.DeleteOnSubmit(dinner);     } public void Save() {      db.SubmitChanges(); }

  26. Model - dotazy DinnerRepository dinnerRepository = new DinnerRepository();   Dinner dinner = dinnerRepository.GetDinner(5); dinner.Title = "Update Title"; dinner.HostedBy = "New Owner“; Dinner newDinner1 = new Dinner(); newDinner1.Title = "Dinner with Scott"; newDinner1.HostedBy = "ScotGu"; newDinner1.ContactPhone = "425-703-8072"; dinnerRepository.Save();

  27. Přidání Controlleru

  28. Přidání Controlleru

  29. Přidání Controlleru public class DinnersController : Controller { // HTTP-GET: /Dinners/     public void Index(){         Response.Write("<h1>Coming Soon: Dinners</h1>");     } // HTTP-GET:/Dinners/Details/2     public void Details(int id){         Response.Write("<h1>Details DinnerID: " + id + </h1>");     } }

  30. Přidání Controlleru

  31. Routing

  32. Routing public void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}");     routes.MapRoute(         "Default", //Route name   "{controller}/{action}/{id}", // URL /params         new { controller="Home", action="Index",id="" }  // Param defaults     ); }

  33. Použití View z Controlleru public class DinnersController : Controller {     DinnerRepository dinnerRepository = new DinnerRepository();     public ActionResult Index() {         var dinners = dinnerRepository.FindUpcomingDinners().ToList();   return View("Index", dinners);     } public ActionResult Details(int id) {         Dinner dinner = dinnerRepository.GetDinner(id);         if (dinner == null)             return View("NotFound");         else             return View("Details", dinner);     } }

  34. Použití View z Controlleru

  35. Použití View z Controlleru

  36. Použití View z Controlleru

  37. Použití View z Controlleru

  38. Použití View z Controlleru

  39. Použití View z Controlleru <asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server"> Details </asp:Content> <asp:Content ID="Main" ContentPlaceHolderID="MainContent" runat="server">     <h2>Details</h2>     <fieldset>         <legend>Fields</legend>         <p>DinnerID: <%=Html.Encode(Model.DinnerID) %></p> <p> Title: <%=Html.Encode(Model.Title) %></p>

  40. Použití View z Controlleru

  41. Použití View z Controlleru

  42. Použití View z Controlleru

  43. Použití View z Controlleru <asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server„>Upcoming Dinners</asp:Content> <asp:Content ID="Main" ContentPlaceHolderID="MainContent" runat="server">     <h2>Upcoming Dinners</h2>     <ul>         <% foreach (var dinner in Model) { %>                    <li><%=Html.ActionLink(dinner.Title, "Details", new { id=dinner.DinnerID }) %> on <%=Html.Encode(dinner.EventDate.ToShortDateString())%> @ <%=Html.Encode(dinner.EventDate.ToShortTimeString())%> </li>                     <% } %> </ul> </asp:Content>

  44. Použití View z Controlleru

  45. Update - GET

  46. Update - GET

  47. Update - GET

  48. Update - GET

  49. Update - POST [AcceptVerbs(HttpVerbs.Post)] public ActionResult Edit(int id, FormCollection formValues) {     Dinner dinner = dinnerRepository.GetDinner(id);     dinner.Title = Request.Form["Title"];     dinner.Description = Request.Form["Description"];     dinner.EventDate = DateTime.Parse(Request.Form["EventDate"]);     dinner.Address = Request.Form["Address"];     dinner.Country = Request.Form["Country"];     dinner.ContactPhone = Request.Form["ContactPhone"];     dinnerRepository.Save();     return RedirectToAction("Details", new { id = dinner.DinnerID }); }

  50. Update – POST lépe [AcceptVerbs(HttpVerbs.Post)] public ActionResult Edit(int id, FormCollection formValues) {     Dinner dinner = dinnerRepository.GetDinner(id);     UpdateModel(dinner);     dinnerRepository.Save();     return RedirectToAction("Details", new { id = dinner.DinnerID }); }

More Related