Presentation is loading. Please wait.

Presentation is loading. Please wait.

AJAX in ASP.NET MVC AJAX, Partial Page Rendering, jQuery AJAX, MVC AJAX Helpers SoftUni Team Technical Trainers Software University

Similar presentations


Presentation on theme: "AJAX in ASP.NET MVC AJAX, Partial Page Rendering, jQuery AJAX, MVC AJAX Helpers SoftUni Team Technical Trainers Software University"— Presentation transcript:

1 AJAX in ASP.NET MVC AJAX, Partial Page Rendering, jQuery AJAX, MVC AJAX Helpers SoftUni Team Technical Trainers Software University http://softuni.bg

2 2 1.What is AJAX?  Raw AJAX vs. AJAX using a JS Library  Partial Page Rendering vs. JSON Service 2.AJAX with Unobtrusive JavaScript 3.AJAX MVC Helpers  ActionLink and BeginForm  Partial Views and AJAX 4.JSON, AJAX and ASP.NET MVC Table of Contents

3 What is AJAX? Asynchronous JavaScript and XML

4 4  AJAX is acronym of Asynchronous JavaScript and XML  AJAX == technique for asynchronously loading (in the background) of dynamic Web content and data from the Web server into a HTML page  Allows dynamically changing the DOM (client-side) in Web applications  Two styles of AJAX  Partial page rendering  Load an HTML fragment and display it in a  JSON service with client-side rendering  Loading a JSON object and render it at the client-side with JS / jQuery AJAX

5 5  AJAX advantages  Asynchronous calls  data is loaded after the page is shown  Minimal data transfer  less traffic, fast update  Responsiveness  better user experience  AJAX disadvantages  Requires more development efforts  The browser [Back] and [Refresh] buttons don't work  Might cause SEO problems: search engine bots may skip the AJAX AJAX: Pros and Cons

6 6  Browsers support XMLHttpRequest object  Exposes a JavaScript API to send raw AJAX requests  Send HTTP / HTTPS requests directly to the Web server  GET / POST / PUT / DELETE / other  AJAX response might be JSON, XML, HTML, as plain text, etc.  Same-origin policy  https://en.wikipedia.org/wiki/Same-origin_policy https://en.wikipedia.org/wiki/Same-origin_policy  AJAX requests can only access the same server that served the original Web page executing the AJAX call The XMLHttpRequest Object

7 7 function updateServerTimeAjax() { var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest(); xhr.open("GET", "/Home/ServerTime", true); xhr.open("GET", "/Home/ServerTime", true); xhr.onreadystatechange = function() { xhr.onreadystatechange = function() { var timeDiv = document.getElementById("timeDisplay"); var timeDiv = document.getElementById("timeDisplay"); timeDiv.innerHTML = ''; timeDiv.innerHTML = ''; if (xhr.readyState == 4 && xhr.status == 200) { if (xhr.readyState == 4 && xhr.status == 200) { timeDiv.innerHTML = xhr.responseText; timeDiv.innerHTML = xhr.responseText; } } xhr.send(); xhr.send();} Raw AJAX – Example The request is finished and the response is ready HTTP status code is "200 OK"

8 8 AJAX with jQuery – Example  jQuery dramatically simplifies working with AJAX: Get Server Time Get Server Time <script> function updateServerTimeAjax () { function updateServerTimeAjax () { $("#timeDisplay").load("/Home/ServerTime"); $("#timeDisplay").load("/Home/ServerTime"); }</script>

9 AJAX with Unobtrusive JavaScript

10  Unobtrusive JavaScript == no script is injected into page  Only data-attributes to configure the AJAX call settings  Requires Microsoft.jQuery.Unobtrusive.Ajax NuGet package  jquery.unobtrusive-ajax.js (AJAX helpers) AJAX with Unobtrusive JavaScript & jQuery <a data-ajax="true" href="/Home/ServerTime" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#timeDisplay"> data-ajax-update="#timeDisplay"> Load Server Time Load Server Time</a> 10

11 AJAX Helpers in ASP.NET MVC @Ajax.ActionLink and @Ajax.BeginForm

12 12  AJAX helpers add AJAX functionality to ASP.NET MVC  Two core features of AJAX helpers:  Invoke an action method asynchronously using AJAX  Use the Ajax.ActionLink() helper  Submit an entire form using AJAX  Use the Ajax.BeginForm() helper  AJAX helpers use AjaxOptions object with configurations AJAX Helpers in ASP.NET MVC

13 13  Url – URL to send request  HttpMethod – request method (GET / POST / PUT / DELETE / …)  InsertionMode – how to handle the received data  InsertAfter, InsertBefore or Replace  UpdateTargetId – HTML element to be changed  LoadingElementId – show / hide "Loading…" when loading  Events (JavaScript functions)  OnSuccess, OnFailure, OnBegin, OnComplete AjaxOptions Object

14 14  Defines an action link ( ) for loading data with AJAX Ajax.ActionLink Helper – Example @Ajax.ActionLink("Load Server Time", "ServerTime", null, new AjaxOptions { new AjaxOptions { HttpMethod = "GET", HttpMethod = "GET", UpdateTargetId = "timeDisplay", UpdateTargetId = "timeDisplay", LoadingElementId = "timeDisplayLoading", LoadingElementId = "timeDisplayLoading", InsertionMode = InsertionMode.Replace, InsertionMode = InsertionMode.Replace, OnBegin = "OnAjaxRequestBegin", OnBegin = "OnAjaxRequestBegin", OnFailure = "OnAjaxRequestFailure", OnFailure = "OnAjaxRequestFailure", OnSuccess = "OnAjaxRequestSuccess", OnSuccess = "OnAjaxRequestSuccess", OnComplete = "OnAjaxRequestComplete", OnComplete = "OnAjaxRequestComplete", }, new { @class = "btn btn-primary" }) action controller

15 15  A form that submits AJAX request and renders a partial view Ajax.BeginForm Helper – Example @using (Ajax.BeginForm("Search", new AjaxOptions { new AjaxOptions { UpdateTargetId = "results", UpdateTargetId = "results", InsertionMode = InsertionMode.Replace InsertionMode = InsertionMode.Replace })) })){ } @Html.Partial("_BookResult", Model) @Html.Partial("_BookResult", Model)

16 16  Return a PartialView to the helpers (view without the layout) Ajax.BeginForm Helper – Example (2) public ActionResult Search(string query) { var result = BooksData var result = BooksData.GetAll().GetAll().AsQueryable().AsQueryable().Where(book => book.Title.Contains(query)).Where(book => book.Title.Contains(query)).Select(BookViewModel.FromBook).Select(BookViewModel.FromBook).ToList();.ToList(); return this.PartialView("_BookResult", result); return this.PartialView("_BookResult", result);}

17 JSON Services in ASP.NET MVC

18 18  MVC Ajax Helpers cover simple AJAX scenarios  Replacing HTML content  Partial page rendering  Other scenarios require some JavaScript  Auto-complete textboxes  Client-side validation  Invoking JSON services and render content at the client-side  Animations JSON Services in ASP.NET MVC

19 19  Return JsonResult in the action  Use jQuery.getJSON(…) MVC, JSON Results and JavaScript Rendering public JsonResult AllBooks() { var books = BooksData.GetAll(); var books = BooksData.GetAll(); return this.Json(books, JsonRequestBehavior.AllowGet); return this.Json(books, JsonRequestBehavior.AllowGet);} jQuery.getJSON("AllBooks", null, function(data) { jQuery(data).each(function (index, element) { jQuery(data).each(function (index, element) { var newBookElement = $(" +element.Title+" "); var newBookElement = $(" +element.Title+" "); $("#books").append(newBookElement); $("#books").append(newBookElement); }); });});

20 20  AJAX is powerful technique in Web development  Load data asynchronously  Without refreshing the entire Web page  AJAX Helpers in ASP.NET MVC simplify AJAX calls  Controllers return partial views, displayed on the Web page  Use ActionLink and BeginForm for simple AJAX calls  Still we can implement JSON service with client-side rendering  Typically use jQuery AJAX functionality Summary

21 ? ? ? ? ? ? ? ? ? AJAX in ASP.NET MVC https://softuni.bg/trainings/1230/asp-net-mvc-october-2015

22 SoftUni Diamond Partners

23 License  This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" licenseCreative Commons Attribution- NonCommercial-ShareAlike 4.0 International 23  Attribution: this work may contain portions from  "ASP.NET MVC" course by Telerik Academy under CC-BY-NC-SA licenseASP.NET MVCCC-BY-NC-SA

24 Free Trainings @ Software University  Software University Foundation – softuni.orgsoftuni.org  Software University – High-Quality Education, Profession and Job for Software Developers  softuni.bg softuni.bg  Software University @ Facebook  facebook.com/SoftwareUniversity facebook.com/SoftwareUniversity  Software University @ YouTube  youtube.com/SoftwareUniversity youtube.com/SoftwareUniversity  Software University Forums – forum.softuni.bgforum.softuni.bg


Download ppt "AJAX in ASP.NET MVC AJAX, Partial Page Rendering, jQuery AJAX, MVC AJAX Helpers SoftUni Team Technical Trainers Software University"

Similar presentations


Ads by Google