{"id":1550,"date":"2015-09-09T21:43:02","date_gmt":"2015-09-10T01:43:02","guid":{"rendered":"http:\/\/andrewpallant.ca\/wordpress\/?p=1550"},"modified":"2020-01-10T11:23:34","modified_gmt":"2020-01-10T16:23:34","slug":"simple-mvc-ajax-get-method","status":"publish","type":"post","link":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/","title":{"rendered":"Simple MVC AJAX GET Method"},"content":{"rendered":"<p style=\"text-align: left;\">MVC makes doing AJAX calls simple. \u00a0As I have said before, I do not like the AJAX controls and methods that the Microsoft ships with the MVC platform. \u00a0I prefer to create my own AJAX methods instead of posting a AJAX form. \u00a0I find I can get better control and I can create tighter rules around elements of importance.<\/p>\n<p style=\"text-align: left;\">The one thing I learned early is\u00a0when doing a Get Method, you need to ensure that you give permission to the AJAX call to return JSON by adding the following to your JSON return object:<\/p>\n<pre style=\"font-family: arial; font-size: 12px; border: 1px dashed #CCCCCC; width: 99%; height: auto; overflow: auto; background: #f0f0f0; padding: 0px; color: #000000; text-align: left; line-height: 20px;\"><code style=\"color: #000000; word-wrap: normal;\">JsonRequestBehavior.AllowGet<\/code><\/pre>\n<p style=\"text-align: left;\">This is an easy example of how to use your basic jQuery with your MVC Controller.<\/p>\n<p><!--more--><\/p>\n<p style=\"text-align: left; display: block;\"><strong>This is my view:<\/strong><\/p>\n<pre style=\"font-family: arial; font-size: 12px; border: 1px dashed #CCCCCC; width: 99%; height: auto; overflow: auto; background: #f0f0f0; padding: 0px; color: #000000; text-align: left; line-height: 20px;\"><code style=\"color: #000000; word-wrap: normal;\"> @{  \r\n   Layout = null;  \r\n }  \r\n   \r\n &lt;!DOCTYPE html&gt;  \r\n   \r\n &lt;html&gt;  \r\n &lt;head&gt;  \r\n   &lt;meta name=\"viewport\" content=\"width=device-width\" \/&gt;  \r\n   &lt;title&gt;Test&lt;\/title&gt;  \r\n   &lt;script src=\"~\/Scripts\/jquery-1.8.2.js\"&gt;&lt;\/script&gt;  \r\n &lt;\/head&gt;  \r\n &lt;body&gt;  \r\n   &lt;div&gt;  \r\n     &lt;label for=\"txtName\"&gt;Name: &lt;\/label&gt;&lt;input type=\"text\" id=\"txtName\" \/&gt;  \r\n     &lt;button id=\"btnSayHello\" value=\"SayHello\"&gt;Say Hello&lt;\/button&gt;  \r\n     &lt;br \/&gt;  \r\n     &lt;label id=\"lblMessage\"&gt;&lt;\/label&gt;  \r\n   &lt;\/div&gt;  \r\n   \r\n   &lt;script type=\"text\/javascript\"&gt;  \r\n     var $SayHelloURL = \"@Url.Action(\"SayHello\", \"Home\")\";  \r\n     $(\"#btnSayHello\").on(\"click\", function () {  \r\n       var _name = $(\"#txtName\").val();  \r\n       $.ajax({  \r\n         method: \"GET\",  \r\n         url: $SayHelloURL,  \r\n         data: { name: _name },  \r\n         success: function(data){  \r\n           if(data.Success)  \r\n           {  \r\n             $(\"#lblMessage\").html(data.Message);  \r\n             $(\"#txtName\").val('');  \r\n           } else {  \r\n             $(\"#lblMessage\").html(data.Message);  \r\n             $(\"#txtName\").focus();  \r\n           }  \r\n         }  \r\n       });  \r\n     });  \r\n   &lt;\/script&gt;  \r\n &lt;\/body&gt;  \r\n &lt;\/html&gt;  \r\n<\/code><\/pre>\n<p><strong>This is my controller:<\/strong><\/p>\n<pre style=\"font-family: arial; font-size: 12px; border: 1px dashed #CCCCCC; width: 99%; height: auto; overflow: auto; background: #f0f0f0; padding: 0px; color: #000000; text-align: left; line-height: 20px;\"><code style=\"color: #000000; word-wrap: normal;\">1:  using System;  \r\n2:  using System.Collections.Generic;  \r\n3:  using System.Linq;  \r\n4:  using System.Web;  \r\n5:  using System.Web.Mvc;  \r\n6:    \r\n7:  namespace TestProject.Controllers  \r\n8:  {  \r\n9:    public class HomeController : Controller  \r\n10:    {  \r\n11:      [HttpGet]  \r\n12:      public JsonResult SayHello(String name)  \r\n13:      {  \r\n14:        Dictionary&lt;String,object&gt; aryOfDictionary = new Dictionary&lt;string,object&gt;();  \r\n15:        if(name.Length &gt; 0)  \r\n16:        {  \r\n17:          aryOfDictionary.Add(\"Succes\", true);  \r\n18:          aryOfDictionary.Add(\"Message\", @\"&lt;span style=\"\"color:Blue;\"\"&gt;Hello \" + name + \".&lt;\/span&gt;\");  \r\n19:        }  \r\n20:        else  \r\n21:        {  \r\n22:          aryOfDictionary.Add(\"Succes\", false);  \r\n23:          aryOfDictionary.Add(\"Message\", @\"&lt;span style=\"\"color:Red;\"\"&gt;Please Enter Your Name...&lt;\/span&gt;\");  \r\n24:        }  \r\n25:        return Json(aryOfDictionary, JsonRequestBehavior.AllowGet);  \r\n26:      }  \r\n27:    \r\n28:      public ActionResult Test()  \r\n29:      {  \r\n30:         return View();  \r\n31:      }  \r\n32:    }  \r\n33:  }  \r\n34:    \r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>MVC makes doing AJAX calls simple. \u00a0As I have said before, I do not like the AJAX controls and methods that the Microsoft ships with the MVC platform. \u00a0I prefer to create my own AJAX methods instead of posting a AJAX form. \u00a0I find I can get better control and I can create tighter rules &hellip; <a href=\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Simple MVC AJAX GET Method<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,36,149,151,96],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>Simple MVC AJAX GET Method<\/title>\r\n<meta name=\"description\" content=\"MVC makes doing AJAX calls easy. This is a simple example of a get Method\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Simple MVC AJAX GET Method\" \/>\r\n<meta property=\"og:description\" content=\"MVC makes doing AJAX calls easy. This is a simple example of a get Method\" \/>\r\n<meta property=\"og:url\" content=\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/\" \/>\r\n<meta property=\"og:site_name\" content=\"LDNDeveloper\" \/>\r\n<meta property=\"article:published_time\" content=\"2015-09-10T01:43:02+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2020-01-10T16:23:34+00:00\" \/>\r\n<meta name=\"author\" content=\"ldnDeveloper\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@LdnDeveloper\" \/>\r\n<meta name=\"twitter:site\" content=\"@LdnDeveloper\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ldnDeveloper\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/\"},\"author\":{\"name\":\"ldnDeveloper\",\"@id\":\"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/f6f5bb1ac3e0c5a54a8b5ce35fd67b84\"},\"headline\":\"Simple MVC AJAX GET Method\",\"datePublished\":\"2015-09-10T01:43:02+00:00\",\"dateModified\":\"2020-01-10T16:23:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/\"},\"wordCount\":124,\"publisher\":{\"@id\":\"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/f6f5bb1ac3e0c5a54a8b5ce35fd67b84\"},\"articleSection\":[\"DotNet\",\"How To\",\"jQuery\",\"JSON\",\"Web\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/\",\"url\":\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/\",\"name\":\"Simple MVC AJAX GET Method\",\"isPartOf\":{\"@id\":\"https:\/\/andrewpallant.ca\/wordpress\/#website\"},\"datePublished\":\"2015-09-10T01:43:02+00:00\",\"dateModified\":\"2020-01-10T16:23:34+00:00\",\"description\":\"MVC makes doing AJAX calls easy. This is a simple example of a get Method\",\"breadcrumb\":{\"@id\":\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/andrewpallant.ca\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Simple MVC AJAX GET Method\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/andrewpallant.ca\/wordpress\/#website\",\"url\":\"https:\/\/andrewpallant.ca\/wordpress\/\",\"name\":\"LDNDeveloper\",\"description\":\"Learning, Growing and Sharing.\",\"publisher\":{\"@id\":\"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/f6f5bb1ac3e0c5a54a8b5ce35fd67b84\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/andrewpallant.ca\/wordpress\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/f6f5bb1ac3e0c5a54a8b5ce35fd67b84\",\"name\":\"ldnDeveloper\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/andrewpallant.ca\/wordpress\/wp-content\/uploads\/2017\/05\/cropped-AAEAAQAAAAAAAAXQAAAAJDQxMGRlMzFjLWM4ODctNDk1NC05M2EyLWE1NDNhNTRiZjVlYw-2.jpg\",\"contentUrl\":\"https:\/\/andrewpallant.ca\/wordpress\/wp-content\/uploads\/2017\/05\/cropped-AAEAAQAAAAAAAAXQAAAAJDQxMGRlMzFjLWM4ODctNDk1NC05M2EyLWE1NDNhNTRiZjVlYw-2.jpg\",\"width\":512,\"height\":512,\"caption\":\"ldnDeveloper\"},\"logo\":{\"@id\":\"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/image\/\"},\"description\":\"Andrew Pallant (@LdnDeveloper) has been a web, database and desktop developer for over 16 years. Andrew has worked on projects that ranged from factory automation to writing business applications. Most recently he has been heavily involved in various forms for ecommerce projects. Over the years Andrew has worn many hats: Project Manager, IT Manager, Lead Developer, Supervisor of Developers and many more - See more at: http:\/\/www.unlatched.com\/#sthash.8DiTkpKy.dpuf\",\"sameAs\":[\"http:\/\/www.andrewpallant.ca\",\"https:\/\/x.com\/LdnDeveloper\"],\"url\":\"http:\/\/andrewpallant.ca\/wordpress\/author\/ldndeveloper\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Simple MVC AJAX GET Method","description":"MVC makes doing AJAX calls easy. This is a simple example of a get Method","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/","og_locale":"en_US","og_type":"article","og_title":"Simple MVC AJAX GET Method","og_description":"MVC makes doing AJAX calls easy. This is a simple example of a get Method","og_url":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/","og_site_name":"LDNDeveloper","article_published_time":"2015-09-10T01:43:02+00:00","article_modified_time":"2020-01-10T16:23:34+00:00","author":"ldnDeveloper","twitter_card":"summary_large_image","twitter_creator":"@LdnDeveloper","twitter_site":"@LdnDeveloper","twitter_misc":{"Written by":"ldnDeveloper","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/#article","isPartOf":{"@id":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/"},"author":{"name":"ldnDeveloper","@id":"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/f6f5bb1ac3e0c5a54a8b5ce35fd67b84"},"headline":"Simple MVC AJAX GET Method","datePublished":"2015-09-10T01:43:02+00:00","dateModified":"2020-01-10T16:23:34+00:00","mainEntityOfPage":{"@id":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/"},"wordCount":124,"publisher":{"@id":"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/f6f5bb1ac3e0c5a54a8b5ce35fd67b84"},"articleSection":["DotNet","How To","jQuery","JSON","Web"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/","url":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/","name":"Simple MVC AJAX GET Method","isPartOf":{"@id":"https:\/\/andrewpallant.ca\/wordpress\/#website"},"datePublished":"2015-09-10T01:43:02+00:00","dateModified":"2020-01-10T16:23:34+00:00","description":"MVC makes doing AJAX calls easy. This is a simple example of a get Method","breadcrumb":{"@id":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/andrewpallant.ca\/wordpress\/simple-mvc-ajax-get-method\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/andrewpallant.ca\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Simple MVC AJAX GET Method"}]},{"@type":"WebSite","@id":"https:\/\/andrewpallant.ca\/wordpress\/#website","url":"https:\/\/andrewpallant.ca\/wordpress\/","name":"LDNDeveloper","description":"Learning, Growing and Sharing.","publisher":{"@id":"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/f6f5bb1ac3e0c5a54a8b5ce35fd67b84"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/andrewpallant.ca\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/f6f5bb1ac3e0c5a54a8b5ce35fd67b84","name":"ldnDeveloper","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/image\/","url":"https:\/\/andrewpallant.ca\/wordpress\/wp-content\/uploads\/2017\/05\/cropped-AAEAAQAAAAAAAAXQAAAAJDQxMGRlMzFjLWM4ODctNDk1NC05M2EyLWE1NDNhNTRiZjVlYw-2.jpg","contentUrl":"https:\/\/andrewpallant.ca\/wordpress\/wp-content\/uploads\/2017\/05\/cropped-AAEAAQAAAAAAAAXQAAAAJDQxMGRlMzFjLWM4ODctNDk1NC05M2EyLWE1NDNhNTRiZjVlYw-2.jpg","width":512,"height":512,"caption":"ldnDeveloper"},"logo":{"@id":"https:\/\/andrewpallant.ca\/wordpress\/#\/schema\/person\/image\/"},"description":"Andrew Pallant (@LdnDeveloper) has been a web, database and desktop developer for over 16 years. Andrew has worked on projects that ranged from factory automation to writing business applications. Most recently he has been heavily involved in various forms for ecommerce projects. Over the years Andrew has worn many hats: Project Manager, IT Manager, Lead Developer, Supervisor of Developers and many more - See more at: http:\/\/www.unlatched.com\/#sthash.8DiTkpKy.dpuf","sameAs":["http:\/\/www.andrewpallant.ca","https:\/\/x.com\/LdnDeveloper"],"url":"http:\/\/andrewpallant.ca\/wordpress\/author\/ldndeveloper\/"}]}},"_links":{"self":[{"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/posts\/1550"}],"collection":[{"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/comments?post=1550"}],"version-history":[{"count":35,"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/posts\/1550\/revisions"}],"predecessor-version":[{"id":1588,"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/posts\/1550\/revisions\/1588"}],"wp:attachment":[{"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/media?parent=1550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/categories?post=1550"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/andrewpallant.ca\/wordpress\/wp-json\/wp\/v2\/tags?post=1550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}