<?xml version="1.0" ?>
<?xml-stylesheet href="/css/rss20.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:pheedo="http://www.pheedo.com/namespace/pheedo" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>DotNetSlackers Latest ASP.NET News in Category Ajax</title>
		<link>http://dotnetslackers.com/Ajax/re-default.aspx</link>
		<description>Latest ASP.NET news from DotNetSlackers in Category Ajax</description>
		<ttl>60</ttl>
		<atom:link rel="hub" href="http://www.pheedo.com/api/hub/"/>
		<atom:link rel="self" href="http://feeds.pheedo.com/dotnetslackers_ajax" type="application/rss+xml"/>
		<item>
			<title>CRUD Operation in ASP.NET Web Applications Using HTTP Handler and jQuery</title>
			<link>http://www.pheedcontent.com/click.phdo?i=480746b62d1fb7b3e8c5dfd5777514a5</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-709706_CRUD_Operation_in_ASP_NET_Web_Applications_Using_HTTP_Handler_and_jQuery.aspx</pheedo:origLink>
			<description>Easy approach to implement AJAX in ASP.NET without using an AJAX control...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=480746b62d1fb7b3e8c5dfd5777514a5&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=480746b62d1fb7b3e8c5dfd5777514a5&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Sun, 20 May 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>An Example to Use jQuery Global AJAX Event Handlers</title>
			<link>http://www.pheedcontent.com/click.phdo?i=b0abb5cab2e7bf9ded0207a25b3bd7d2</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-703675_An_Example_to_Use_jQuery_Global_AJAX_Event_Handlers.aspx</pheedo:origLink>
			<description>This article presents an example to use jQuery global AJAX event handlers....&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=b0abb5cab2e7bf9ded0207a25b3bd7d2&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=b0abb5cab2e7bf9ded0207a25b3bd7d2&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Fri, 11 May 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Passing multiple POST parameters to Web API Controller Methods</title>
			<link>http://www.pheedcontent.com/click.phdo?i=8601c8e3b98b2581226800208fb131d4</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-702567_Passing_multiple_POST_parameters_to_Web_API_Controller_Methods.aspx</pheedo:origLink>
			<description>ASP.NET Web API introduces a new API for creating REST APIs and making AJAX callbacks to the server. This new API provides a host of new great functionality that unifies many of the features of many of the various AJAX/REST APIs that Microsoft created before it - ASP.NET AJAX, WCF REST specifically - and combines them into a whole more consistent API. Web API addresses many of the concerns that developers had with these older APIs, namely that it was very difficult to build consistent REST style...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=8601c8e3b98b2581226800208fb131d4&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=8601c8e3b98b2581226800208fb131d4&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>Rick Strahls WebLog</author>
			<pubDate>Wed, 09 May 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Ajax Cascading DropDownList With GridView</title>
			<link>http://www.pheedcontent.com/click.phdo?i=f2a89f9344726cad02dffbe2580382bd</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-694850_Ajax_Cascading_DropDownList_With_GridView.aspx</pheedo:origLink>
			<description>This is an alternative for "Ajax Cascading DropDownList With GridView"...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=f2a89f9344726cad02dffbe2580382bd&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=f2a89f9344726cad02dffbe2580382bd&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Thu, 26 Apr 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Take a Walk on the Client Side with WebAPI and WebForms</title>
			<link>http://www.pheedcontent.com/click.phdo?i=20e995002bec7c8bb31c2b25a42d3942</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-694790_Take_a_Walk_on_the_Client_Side_with_WebAPI_and_WebForms.aspx</pheedo:origLink>
			<description>&lt;p&gt;In my &lt;a rel='nofollow' href="http://blogs.telerik.com/aspnet-ajax/posts/12-04-19/a-match-made-in-http-heaven---asp-net-web-forms-and-webapi.aspx" target="_blank"&gt;last blog&lt;/a&gt; I introduced the basics of using ASP.NET AJAX and WebAPI together in the same project.&amp;nbsp; In addition, I showed how to bind results from WebAPI to a &lt;a rel='nofollow' href="http://www.telerik.com/products/aspnet-ajax/grid.aspx" target="_blank"&gt;Teleriks ASP.NET AJAX Grid&lt;/a&gt;. In this blog I will continue down this path and implement insert, update, and delete operations using WebAPI and RadGrid! &lt;/p&gt; &lt;p&gt;&lt;em&gt;Note: While this post focuses on using WebAPI in conjunction with RadGrid, most of the client code can be used when working with RadGrid in client mode.&lt;/em&gt;&lt;/p&gt; &lt;h2&gt;&lt;/h2&gt; &lt;h2&gt;Set It Up!&lt;/h2&gt; &lt;p&gt;To get started an additional reference needs to be added to the project:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;System.Net.Http.Formatting &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Adding this reference allows us to use HttpResponseMessage&amp;lt;T&amp;gt;, which will be used to return data to the client.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Now on to the fun stuff!&lt;/p&gt; &lt;h2&gt;Let There Be Customers!&lt;/h2&gt; &lt;p&gt;Customers cant be updated or deleted if they dont exist; so I will start off by building a way to create customers.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Creating customers requires:&lt;/p&gt; &lt;p&gt;A Post action method in the controller to create a customer. &lt;/p&gt; &lt;p&gt;A button in the UI to create a new customer. &lt;/p&gt; &lt;p&gt;A form to enter customer information. &lt;/p&gt; &lt;p&gt;A way to submit the new customers information to the server. &lt;/p&gt; &lt;p&gt;A way to refresh the grid to show the new customer. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Starting with step one, I am going to create the &lt;strong&gt;Post&lt;/strong&gt; method in the &lt;strong&gt;CustomerController&lt;/strong&gt; as shown here:&amp;nbsp; &lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;public&lt;/span&gt; HttpResponseMessage Post(Customer newCustomer)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;{&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    repository.Add(newCustomer);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    repository.Save();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    var response = new&lt;/span&gt; HttpResponseMessage&amp;lt;Customer&amp;gt;(newCustomer, HttpStatusCode.Created);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    response.Headers.Location = new&lt;/span&gt; Uri(Request.RequestUri, "/api/customers/"&lt;/span&gt; + newCustomer.Id.ToString());&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; return&lt;/span&gt; response;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;This method adds a new customer to the repository, saves the customer, and then returns a new HttpResponseMessage&amp;lt;Customer&amp;gt;.&amp;nbsp; The response message passes the created customer in its body, and returns a status code of &lt;em&gt;201  Created&lt;/em&gt;. The 201 status code indicates to the client that the new resource was actually created.&amp;nbsp; We will look at how to handle that client side in a moment.&lt;/p&gt; &lt;p&gt;Before we can focus on client code, the UI needs to be setup.&amp;nbsp; The first thing to do is add a new command item in the grid header. This will be where a user clicks to add a new customer:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;lt;&lt;/span&gt;CommandItemTemplate&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;button&lt;/span&gt; onclick&lt;/span&gt;="addCustomer(); return false;"&lt;/span&gt;&amp;gt;&lt;/span&gt;Add New Customer&amp;lt;/&lt;/span&gt;button&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;lt;/&lt;/span&gt;CommandItemTemplate&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;Now I need a form for users to enter the new customer information.&amp;nbsp; In this example I use &lt;a rel='nofollow' href="http://www.telerik.com/products/aspnet-ajax/window.aspx " target="_blank"&gt;Teleriks ASP.NET AJAX Window control&lt;/a&gt; to create a modal dialog, and add a form inside the dialog:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;lt;&lt;/span&gt;telerik:RadWindow&lt;/span&gt; runat&lt;/span&gt;="server"&lt;/span&gt; ID&lt;/span&gt;="CustomerEditWindow"&lt;/span&gt; Modal&lt;/span&gt;="true"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;ContentTemplate&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;form&lt;/span&gt; id&lt;/span&gt;="customerInfoForm"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;p&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                Enter Customer Information:&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;/&lt;/span&gt;p&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;asp:HiddenField&lt;/span&gt; ID&lt;/span&gt;="customerId"&lt;/span&gt; runat&lt;/span&gt;="server"&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;asp:TextBox&lt;/span&gt; ID&lt;/span&gt;="customerFirstName"&lt;/span&gt; runat&lt;/span&gt;="server"&lt;/span&gt; /&amp;gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;asp:TextBox&lt;/span&gt; ID&lt;/span&gt;="customerLastName"&lt;/span&gt; runat&lt;/span&gt;="server"&lt;/span&gt; /&amp;gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;lt;&lt;/span&gt;asp:Button&lt;/span&gt; ID&lt;/span&gt;="btnCancelCustomer"&lt;/span&gt; Text&lt;/span&gt;="Cancel"&lt;/span&gt; CssClass&lt;/span&gt;="secondaryAction"&lt;/span&gt; runat&lt;/span&gt;="server"&lt;/span&gt; OnClientClick&lt;/span&gt;="closeCustomerEditor(); return false;"&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;asp:Button&lt;/span&gt; ID&lt;/span&gt;="btnSaveCustomer"&lt;/span&gt; Text&lt;/span&gt;="Save"&lt;/span&gt; runat&lt;/span&gt;="server"&lt;/span&gt; CssClass&lt;/span&gt;="primaryAction"&lt;/span&gt; OnClientClick&lt;/span&gt;="saveCustomer(); return false;"&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;/&lt;/span&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;/&lt;/span&gt;form&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;/&lt;/span&gt;ContentTemplate&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;lt;/&lt;/span&gt;telerik:RadWindow&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;I went ahead and added an extra hidden field to store the customer id.&amp;nbsp; This will be used later when implementing updates.&amp;nbsp; I also created two buttons, one to submit the form, and one to cancel customer creation.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The last step to implementing customer creation is wiring everything up with JavaScript.&amp;nbsp; When the &lt;strong&gt;Add Customer&lt;/strong&gt; button in the grid header is pressed, an &lt;strong&gt;addCustomer&lt;/strong&gt; JavaScript function is called.&amp;nbsp; This JavaScript function simply shows the editor form, as shown here:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; addCustomer() {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;   $find("&amp;lt;%=CustomerEditWindow.ClientID %&amp;gt;"&lt;/span&gt;).show();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;When the cancel button is clicked, the form needs to be cleared, and the window needs to be closed.&amp;nbsp; This is handled by the &lt;strong&gt;closeCustomerEditor &lt;/strong&gt;JavaScript function:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; closeCustomerEditor() {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; //close dialog&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $find("&amp;lt;%=CustomerEditWindow.ClientID %&amp;gt;"&lt;/span&gt;).close();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; //reset form&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $get("&amp;lt;%= customerFirstName.ClientID %&amp;gt;"&lt;/span&gt;).value = "&lt;/span&gt;;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $get("&amp;lt;%= customerLastName.ClientID %&amp;gt;"&lt;/span&gt;).value = "&lt;/span&gt;;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $get("&amp;lt;%= customerId.ClientID %&amp;gt;"&lt;/span&gt;).value = "&lt;/span&gt;;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;When the submit button is pressed, the &lt;strong&gt;saveCustomer &lt;/strong&gt;JavaScript&lt;strong&gt; &lt;/strong&gt;function is called. In the &lt;strong&gt;saveCustomer &lt;/strong&gt;function a client side customer object is created using the values from the form, and then the &lt;strong&gt;createResource&lt;/strong&gt; function is called passing the customer object, and a callback function.&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; saveCustomer() {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; var&lt;/span&gt; customer = {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        FirstName: $get("&amp;lt;%= customerFirstName.ClientID %&amp;gt;"&lt;/span&gt;).value,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        LastName: $get("&amp;lt;%= customerLastName.ClientID %&amp;gt;"&lt;/span&gt;).value,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        Id: $get("&amp;lt;%= customerId.ClientID %&amp;gt;"&lt;/span&gt;).value&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                    };&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    closeCustomerEditor();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    createResource(customer, refreshGrid);   &lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;The &lt;strong&gt;createResource &lt;/strong&gt;method sends an AJAX &lt;strong&gt;POST &lt;/strong&gt;containing&lt;strong&gt; &lt;/strong&gt;the new customers information to the &lt;strong&gt;Post &lt;/strong&gt;action created earlier. If everything goes as expected the server will return a &lt;em&gt;204 Created&lt;/em&gt; result, and the callback function will be executed.&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; createResource(model, success) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $.ajax({&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        url: baseUrl,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        data: model,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        type: "POST"&lt;/span&gt;,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        statusCode: {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;            201: function&lt;/span&gt; (newResource) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (success) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                    success(newResource);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;            }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    });&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;At this point customers can be created, and its time to implement editing!&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;h2&gt;Oh No, I Miss Spelled His Name!&lt;/h2&gt; &lt;p&gt;At this point we can move on to editing a customer.&amp;nbsp; Updating a customer is very similar to creating a new one.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The main differences are:&lt;/p&gt; &lt;p&gt;The form needs to be pre-populated with the edited customers information. &lt;/p&gt; &lt;p&gt;When sending the updated information to the server the PUT verb should be used. &lt;/p&gt; &lt;p&gt;Lets dig in!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The first thing needed here, is a way to retrieve a customer by its id from the server.&amp;nbsp; For this I will create a new action method on the &lt;strong&gt;CustomerController&lt;/strong&gt; named &lt;strong&gt;Get&lt;/strong&gt;, and it will take a single parameter named id. The &lt;strong&gt;Get&lt;/strong&gt; method will attempt to retrieve a customer based on the specified id, and if one is found, the server will return a new HttpResponseMessage&amp;lt;Customer&amp;gt; with a status code of &lt;em&gt;200 - OK&lt;/em&gt;. If no customer is found, it should throw a new HttpResponseException, and use the &lt;em&gt;404  Not Found&lt;/em&gt; status.&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;public&lt;/span&gt; HttpResponseMessage Get(int&lt;/span&gt; id)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;{&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;  HttpResponseMessage response;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;  var customer = repository.GetById(id);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (customer == null&lt;/span&gt;)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;  {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; throw&lt;/span&gt; new&lt;/span&gt; HttpResponseException("Invalid Customer"&lt;/span&gt;, HttpStatusCode.NotFound);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;  }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; else&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;  {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;      response = new&lt;/span&gt; HttpResponseMessage&amp;lt;Customer&amp;gt;(customer, HttpStatusCode.OK);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;  }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; return&lt;/span&gt; response;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;The next step is to create an action method in the &lt;strong&gt;CustomerController&lt;/strong&gt; that will handle update operations for the customer resource.&amp;nbsp; The &lt;strong&gt;Put &lt;/strong&gt;method retrieves the customer by its id, updates it, and returns a HttpResponseMessage with a &lt;em&gt;200  OK &lt;/em&gt;status code if it was successful:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;public&lt;/span&gt; HttpResponseMessage Put(Customer updatedCustomer)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;{&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    HttpResponseMessage response;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    var customer = repository.GetById(updatedCustomer.Id);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (customer == null&lt;/span&gt;)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; throw&lt;/span&gt; new&lt;/span&gt; HttpResponseException("Invalid Customer"&lt;/span&gt;, HttpStatusCode.NotFound);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; else&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        customer.FirstName = updatedCustomer.FirstName;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        customer.LastName = updatedCustomer.LastName;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        repository.Save();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        response = new&lt;/span&gt; HttpResponseMessage(HttpStatusCode.OK);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; return&lt;/span&gt; response;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;&lt;em&gt;Note 1: By convention WebAPI will automatically use a method that starts with Put to handle requests using the PUT verb.&amp;nbsp; If you want to use a different method, simply add the [HttpPut] attribute to the method.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Note 2: If you want to add validation (everyone should! :)) please see the validation section below!&lt;/em&gt;&lt;/p&gt; &lt;p&gt;At this point the client-side needs to be wired up!&lt;/p&gt; &lt;p&gt;The first thing I need to do is add a new column to the grid, and then add a client side handler for grid commands. &lt;/p&gt; &lt;p&gt;Since the goal is to edit a customer, I added a column of type &lt;strong&gt;GridEditCommandColumn&lt;/strong&gt;:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;lt;&lt;/span&gt;telerik:GridEditCommandColumn&lt;/span&gt; ButtonType&lt;/span&gt;="ImageButton"&lt;/span&gt; ItemStyle-Width&lt;/span&gt;="20"&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;Next i configured the grids client events, and added a client side handler for &lt;strong&gt;OnCommand&lt;/strong&gt;:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;lt;&lt;/span&gt;ClientSettings&lt;/span&gt; ClientEvents-OnCommand&lt;/span&gt;="handleGridCommand"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;DataBinding&lt;/span&gt; Location&lt;/span&gt;="~/api"&lt;/span&gt; ResponseType&lt;/span&gt;="JSON"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;DataService&lt;/span&gt; TableName&lt;/span&gt;="Customers"&lt;/span&gt; Type&lt;/span&gt;="OData"&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;/&lt;/span&gt;DataBinding&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &amp;lt;&lt;/span&gt;Scrolling&lt;/span&gt; AllowScroll&lt;/span&gt;="True"&lt;/span&gt; UseStaticHeaders&lt;/span&gt;="True"&lt;/span&gt; SaveScrollPosition&lt;/span&gt;="True"&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;lt;/&lt;/span&gt;ClientSettings&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;Then I created a client method to handle the grid commands. The &lt;strong&gt;handleGridCommand&lt;/strong&gt; function inspects the command, and if it is an edit command, the default grid action is cancelled, and the &lt;strong&gt;editCustomer&lt;/strong&gt; client function is called: &lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; handleGridCommand(sender, args) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; var&lt;/span&gt; command = args.get_commandName().toLowerCase();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (command == "edit"&lt;/span&gt;) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; //get the id for the data key for the command's row&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; var&lt;/span&gt; customerId = getKeyValueByRowIndex(args.get_tableView(), args.get_commandArgument());&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;       editCustomer(customerId);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;       args.set_cancel(true&lt;/span&gt;);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;   }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;The &lt;strong&gt;editCustomer&lt;/strong&gt; function, queries the service for the customer by its id, sets the forms input values, and shows the edit customer modal dialog using a few additional methods:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; editCustomer(id) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    getResource(id, loadEditScreen)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; loadEditScreen(resource) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $get("&amp;lt;%= customerFirstName.ClientID %&amp;gt;"&lt;/span&gt;).value = resource.FirstName;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $get("&amp;lt;%= customerLastName.ClientID %&amp;gt;"&lt;/span&gt;).value = resource.LastName;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $get("&amp;lt;%= customerId.ClientID %&amp;gt;"&lt;/span&gt;).value = resource.Id;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $find("&amp;lt;%=CustomerEditWindow.ClientID %&amp;gt;"&lt;/span&gt;).show();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; &lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; getResource(id, success) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $.ajax({&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        url: baseUrl + '/'&lt;/span&gt; + id,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        type: "GET"&lt;/span&gt;,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        dataType: 'JSON'&lt;/span&gt;,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        statusCode: {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;            200: function&lt;/span&gt; (resource) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (success) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                    success(resource);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;            }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    });&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;At this point the user should see the modal dialog, populated with the customers information.&amp;nbsp; Once they make some edits, and click the save button in the dialog, the &lt;strong&gt;saveCustomer&lt;/strong&gt; JavaScript method is called just like when creating a customer; however, the method needs to be tweaked slightly to handle updating customers:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; saveCustomer() {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; var&lt;/span&gt; customer = {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        FirstName: $get("&amp;lt;%= customerFirstName.ClientID %&amp;gt;"&lt;/span&gt;).value,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        LastName: $get("&amp;lt;%= customerLastName.ClientID %&amp;gt;"&lt;/span&gt;).value,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        Id: $get("&amp;lt;%= customerId.ClientID %&amp;gt;"&lt;/span&gt;).value&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                    };&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    closeCustomerEditor();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (customer.Id == ''&lt;/span&gt; || customer.Id == 0) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        createResource(customer, refreshGrid);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; else&lt;/span&gt; {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        updateResource(customer, refreshGrid);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;Now when &lt;strong&gt;saveCustomer&lt;/strong&gt; is called the &lt;strong&gt;updateResource&lt;/strong&gt; method will be called when saving an existing customer. &lt;/p&gt; &lt;p&gt;The &lt;strong&gt;updateResource&lt;/strong&gt; method sends an AJAX request using the &lt;strong&gt;PUT&lt;/strong&gt; Http verb. Using the PUT verb directs the controller to the &lt;strong&gt;Put&lt;/strong&gt; action in the &lt;strong&gt;CustomersController&lt;/strong&gt;. Once again, if everything goes as planed the server returns a status code of &lt;em&gt;200  OK&lt;/em&gt;, and the grid is refreshed:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; updateResource(model, success) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;  $.ajax({&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;      url: baseUrl + '/'&lt;/span&gt; + model.Id,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;      data: model,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;      type: "PUT"&lt;/span&gt;,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;      dataType:'JSON'&lt;/span&gt;,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;      statusCode: {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;          200: function&lt;/span&gt; (resource) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (success) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                  success(resource);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;              }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;          }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;      }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;  });&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;Now we can fix any typo in a customers name, but what about when we need to remove a customer?!&lt;/p&gt; &lt;h2&gt;Deleting Customers!&lt;/h2&gt; &lt;p&gt;The final step in this journey is adding the ability to delete customers. Configuring deletes is very similar to the previous sections.&amp;nbsp; &lt;/p&gt; &lt;p&gt;In this case I need to add the following:&lt;/p&gt; &lt;p&gt;A server side action on the controller to handle the delete. &lt;/p&gt; &lt;p&gt;A new column in the grid to display the delete button. &lt;/p&gt; &lt;p&gt;Some JavaScript to handle the client side delete command. &lt;/p&gt; &lt;p&gt;A grid refresh once the customer is deleted. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Once again, I will start off with step one and setup the server side code first! In the &lt;strong&gt;CustomersController &lt;/strong&gt;I created a &lt;strong&gt;Delete&lt;/strong&gt; action method. The &lt;strong&gt;Delete&lt;/strong&gt; method attempts to retrieve a customer by the specified id, and if a valid customer is found, the server returns a &lt;em&gt;204  No Content&lt;/em&gt; status. If the specified customer was not found, we will throw a new HttpResponseException, set a message and use the &lt;em&gt;404  Not Found&lt;/em&gt; status. &lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;public&lt;/span&gt; HttpResponseMessage Delete(int&lt;/span&gt; id)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;{&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;   HttpResponseMessage response;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;   var customer = repository.GetById(id);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (customer == null&lt;/span&gt;)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;   {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; throw&lt;/span&gt; new&lt;/span&gt; HttpResponseException("Invalid Customer"&lt;/span&gt;, HttpStatusCode.NotFound);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;   }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; else&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;   {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;       repository.Remove(customer);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;       repository.Save();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;       response = new&lt;/span&gt; HttpResponseMessage(HttpStatusCode.NoContent);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;   }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; return&lt;/span&gt; response;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Now we need to configure the UI.&amp;nbsp; First I will add a new column to the grid, except this time I will add a &lt;strong&gt;GridClientDeleteColumn&lt;/strong&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;lt;&lt;/span&gt;telerik:GridClientDeleteColumn&lt;/span&gt; ButtonType&lt;/span&gt;="ImageButton"&lt;/span&gt; ItemStyle-Width&lt;/span&gt;="20"&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;Now I need to update the &lt;strong&gt;handleGridCommand &lt;/strong&gt;to make it handle the delete command as well:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; handleGridCommand(sender, args) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; var&lt;/span&gt; command = args.get_commandName().toLowerCase();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (command == "delete"&lt;/span&gt; || command == "edit"&lt;/span&gt;) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; //get the id for the data key for the command's row&lt;/span&gt;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; var&lt;/span&gt; customerId = getKeyValueByRowIndex(args.get_tableView(), args.get_commandArgument());&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (command == "delete"&lt;/span&gt;) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;           deleteResource(customerId, refreshGrid);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;       }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; else&lt;/span&gt; {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;           editCustomer(customerId);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;       }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;       args.set_cancel(true&lt;/span&gt;);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;   }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;Here I check to see if the command is the delete command, and if it is, I cancel the default grid command, and call the &lt;strong&gt;deleteResource&lt;/strong&gt; JavaScript method. The &lt;strong&gt;deleteResource&lt;/strong&gt; method send an AJAX request to the server using the Http Delete verb. If the server returns a status code of 204, we know the delete was successful, and call the success callback function (if it was passed in). &lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function&lt;/span&gt; deleteResource(id, success, fail) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    $.ajax({&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        url: baseUrl + '/'&lt;/span&gt; + id,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        type: "DELETE"&lt;/span&gt;,&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        statusCode: {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;            204: function&lt;/span&gt; () {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (success) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                    success();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;            }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    });&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;At this point delete operations should be working!&lt;/p&gt; &lt;h2&gt;&lt;/h2&gt; &lt;h2&gt;In Action&lt;/h2&gt; &lt;p&gt;Now the fun part, seeing if it all works!&amp;nbsp; Go ahead and run the application, and you should see the grid populated with some customers (I like this store apparently):&lt;/p&gt; &lt;p&gt;&lt;a rel='nofollow' href="http://blogs.telerik.com/Libraries/MetaBlogLib/WindowsLiveWriter-image_4_8.sflb"&gt;&lt;img style="border:0px solid; border-image: initial; display: inline;" title="image" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlogLib/WindowsLiveWriter-image_thumb_1_8.sflb" width="244" height="136" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now open your favorite developer tools, create/update/delete some customers, and inspect the network traffic:&lt;/p&gt; &lt;p&gt;&lt;a rel='nofollow' href="http://blogs.telerik.com/Libraries/MetaBlogLib/WindowsLiveWriter-image_2_10.sflb"&gt;&lt;img style="border:0px solid; border-image: initial; display: inline;" title="image" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlogLib/WindowsLiveWriter-image_thumb_13.sflb" width="244" height="130" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;As you can see highlighted in red, everything is working as expected!&lt;/p&gt; &lt;h2&gt;Validating the Request&lt;/h2&gt; &lt;p&gt;In this blog I did not really cover validating the data model other than checking to see if valid ids were sent to the server. That said, the way the controller, and client code, is configured it is rather easy to return different status codes, and include the validation errors in the response.&amp;nbsp; This will allow you to leverage data annotations applied to your objects.&amp;nbsp; &lt;/p&gt; &lt;p&gt;As an example, if I applied an attribute to the Customer entity, and the data sent to the server was invalid, I could return ModelValidation errors like this:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;if&lt;/span&gt; (!ModelState.IsValid)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;{&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; return&lt;/span&gt; new&lt;/span&gt; HttpResponseMessage&amp;lt;JsonValue&amp;gt;(ModelState.ToJson(), HttpStatusCode.BadRequest);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;The ToJson method serializes the model errors to JSON, and the controller returns a new HttpResponseMessage&amp;lt;JsonValue&amp;gt; with a status code of &lt;em&gt;400  Bad Request&lt;/em&gt;. &lt;/p&gt; &lt;p&gt;ToJson Extension method:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;public&lt;/span&gt; static&lt;/span&gt; class&lt;/span&gt; ModalStateHelpers&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;{&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; public&lt;/span&gt; static&lt;/span&gt; JsonArray ToJson(this&lt;/span&gt; ModelStateDictionary modalState)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        var errors = new&lt;/span&gt; JsonArray();&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; foreach&lt;/span&gt; (var prop in&lt;/span&gt; modalState.Values)&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; (prop.Errors.Any())&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;            {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;                errors.Add(prop.Errors.First().ErrorMessage);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;            }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;&amp;nbsp;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; return&lt;/span&gt; errors;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;}&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;The client can then handle this status code, and show the errors to these errors to the user:&lt;/p&gt;   &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;function showErrors(errors) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    var strErrors = "&lt;/span&gt;;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; if&lt;/span&gt; ($.isArray(errors)) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        $.each(errors, function (index, err) {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;            strErrors += "*"&lt;/span&gt; + err + "\n"&lt;/span&gt;;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        });&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt; else&lt;/span&gt; {&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;        strErrors = errors;&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    }&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: white; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 100%; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;    alert(strErrors);&lt;/pre&gt; &lt;!--CRLF--&gt; &lt;pre style="border: none;  border-image: initial; text-align: left; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 12pt; background-color: #f4f4f4; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; width: 530px; font-family: 'courier new', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow-x: visible; overflow-y: visible;"&gt;};&lt;/pre&gt; &lt;!--CRLF--&gt;  &lt;p&gt;While I didnt go in-depth about validation in this article, the sample code does have data attributes applied to the Customer object, and validation is handled; so make sure to check it out! :)&lt;/p&gt; &lt;h2&gt;That's a Wrap!&lt;/h2&gt; &lt;p&gt;Wow, this blog came out quite a bit longer than I expected! That said, hopefully it will help you get started using ASP.NET AJAX, and WebAPI!&lt;/p&gt; &lt;p&gt;&lt;a rel='nofollow' href="http://blogs.telerik.com/Libraries/Joshua_Holt_s_Library/WebAPIWebFormsDemo.sflb?download=true" target="_blank"&gt;Download Source&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Happy Coding!&lt;/p&gt; &lt;p&gt;&lt;a rel='nofollow' href="http://www.telerik.com/products/aspnet-ajax.aspx" target="blank"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a style="display: none;" href="http://www.codeproject.com" rel="tag" target="blank"&gt;CodeProject&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;About the author&lt;/h2&gt; &lt;img alt="Joshua Holt" src="http://blogs.telerik.com/Libraries/Joshua_Holt_s_Library/josh.sflb" class="photo" /&gt; &lt;h3 class="fn"&gt;Joshua Holt&lt;/h3&gt; &lt;p&gt;Joshua Holt works as a Developer Support Specialist at Telerik focusing on &lt;a rel='nofollow' href="http://www.telerik.com/products/aspnet-ajax.aspx" target="blank"&gt;ASP.NET&lt;/a&gt;, but tends to dabble in all of the products. Part of his role at Telerik is to work closely with the team, and help developers leverage the Telerik product line up. In his free time he likes to tinker with spatial data visualization projects, and chase clouds. Prior to working at Telerik, Joshua worked as a consultant for several Fortune 500 companies in the oil and gas industry.&lt;/p&gt; &lt;p class="twit"&gt;&lt;a rel='nofollow' href="https://twitter.com/#!/jholt456" target="_blank" re_target="_blank"&gt;@jholt456&lt;/a&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/Telerik/~4/IrmxSLv15vc" height="1" width="1"/&gt;&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=20e995002bec7c8bb31c2b25a42d3942&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=20e995002bec7c8bb31c2b25a42d3942&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>the telerik blogs</author>
			<pubDate>Thu, 26 Apr 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Calling Web Services Using AJAX</title>
			<link>http://www.pheedcontent.com/click.phdo?i=8f0150f7698f4b0e8e230b52b184a747</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-688316_Calling_Web_Services_Using_AJAX.aspx</pheedo:origLink>
			<description>This article presents code that uses AJAX to contact the server from client-side script and get a response without refreshing the current page....&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=8f0150f7698f4b0e8e230b52b184a747&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=8f0150f7698f4b0e8e230b52b184a747&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>Black Belt Coder Article Feed</author>
			<pubDate>Sun, 15 Apr 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Kinect Bing Map AJAX Control 6.3 with WPF</title>
			<link>http://www.pheedcontent.com/click.phdo?i=85ba2d1ee5162b582c9b7e996f5bb7c2</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-683817_Kinect_Bing_Map_AJAX_Control_6_3_with_WPF.aspx</pheedo:origLink>
			<description>Kinect Bing Map Ajax Control 6.3 - 3D, Streetside and Bird Eye with WPF Webrowser Control...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=85ba2d1ee5162b582c9b7e996f5bb7c2&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=85ba2d1ee5162b582c9b7e996f5bb7c2&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Sun, 08 Apr 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Simple AJAX POST Form and AJAX Fetch Link to Modal Popup</title>
			<link>http://www.pheedcontent.com/click.phdo?i=6382c94cc446ac99379b26b111a50ac1</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-666284_Simple_AJAX_POST_Form_and_AJAX_Fetch_Link_to_Modal_Popup.aspx</pheedo:origLink>
			<description>Post a form using Ajax and Get/Load your links to ajax modal popup. Sample for basic XML Ajax chater....&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=6382c94cc446ac99379b26b111a50ac1&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=6382c94cc446ac99379b26b111a50ac1&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Fri, 09 Mar 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>New Sample Application Available for ASP.NET AJAX  Image Gallery</title>
			<link>http://www.pheedcontent.com/click.phdo?i=725dc02a9d8822a9fa4cb32a296c6714</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-657900_New_Sample_Application_Available_for_ASP_NET_AJAX_Image_Gallery.aspx</pheedo:origLink>
			<description>&lt;p&gt;An image gallery is a popular feature in a website, so we decided to demonstrate how easy and quick it is to build a gallery with the RadControls for ASP.NET AJAX and OpenAccess ORM. The finished app is compatible not only with the latest desktop browsers, but also with the major mobile ones.&lt;/p&gt; &lt;p&gt;&lt;img alt="Image Gallery Main Page" src="http://blogs.telerik.com:80//Libraries/ASP_NET_AJAX/ImageGalleryMain.sflb?width=550&amp;height=550&amp;decreaseOnly=true" /&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The list of images on the main page was a perfect opportunity to show off the new client-side data-binding of our RadListView control. To get the data to the browser, we settled on a WCF Web Service. The same approach is used for populating the images in a RadGrid for an alternate view of the gallery.&lt;/p&gt; &lt;p&gt;&lt;img alt="Image Gallery Grid View" src="http://blogs.telerik.com:80//Libraries/ASP_NET_AJAX/ImageGalleryGrid.sflb?width=550&amp;height=550&amp;decreaseOnly=true" /&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Details for each image are displayed in a separate page that allows rating and sharing the picture with your friends through the most popular social networks. This is easily done via the RadRating and RadSocialShare controls, which are designed specifically for such scenarios. A RadRotator above the picture provides an intuitive navigation throughout the gallery. All of these features integrate seamlessly with RadAjax for a lightning fast user experience.&lt;/p&gt; &lt;p&gt;&lt;img alt="Image Gallery Details Page" src="http://blogs.telerik.com:80//Libraries/ASP_NET_AJAX/ImageGalleryDetails.sflb?width=550&amp;height=550&amp;decreaseOnly=true" /&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;You can add your own images to the gallery in no time as well via the RadAsyncUpload control. A client-side preview is implemented on the Upload page so you can easily fill up the pictures information.before inserting it in the gallery. Open Access ORM provides easy and smooth communication with the stored information in the database throughout the entire application.&lt;/p&gt; &lt;p&gt;&lt;img alt="Image Gallery Upload Image Page" src="http://blogs.telerik.com:80//Libraries/ASP_NET_AJAX/ImageGalleryUpload.sflb?width=550&amp;height=550&amp;decreaseOnly=true" /&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;We also wanted to show how easily the default appearance of the RadControls can be changed, so we prepared entirely new styles with heavy use of CSS3 to give the Image Gallery a unique and modern look.&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" title="open image gallery application" href="http://demos.telerik.com/aspnet-ajax/imagegallery/"&gt;Click (or tap :) ) here&lt;/a&gt; to see the application online. We hope you will enjoy it! Like all our other samples, the source code is available for download as well - &lt;a rel='nofollow' href="http://demos.telerik.com/aspnet-ajax/imagegallery/ImageGallerySource.zip" title="image gallery source code"&gt;click here to get it&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;About the author&lt;/h2&gt; &lt;img src="http://blogs.telerik.com/Libraries/ASP_NET_AJAX/StoyanStratev.sflb" alt="Stoyan Stratev" class="photo" /&gt; &lt;h3 class="fn"&gt;Stoyan Stratev&lt;/h3&gt; &lt;p&gt;Stoyan Stratev is the team lead of one of Teleriks ASP.NET AJAX teams. He joined the company in 2005 as a web developer and ever since he has been specializing in the integration of the Telerik components in third-party solutions, such as DotNetNuke and SharePoint. His main interests are the client side of web development and his team is responsible for the oldest Teleriks product  the RadEditor. &lt;/p&gt; &lt;p class="twit"&gt;----&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/Telerik/~4/SFsfW8RfikU" height="1" width="1"/&gt;&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=725dc02a9d8822a9fa4cb32a296c6714&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=725dc02a9d8822a9fa4cb32a296c6714&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>the telerik blogs</author>
			<pubDate>Fri, 24 Feb 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Formatting content with RadEditor for ASP.NET AJAX just became easier</title>
			<link>http://www.pheedcontent.com/click.phdo?i=72a096205a744f6e870313d9e814f0f9</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-652509_Formatting_content_with_RadEditor_for_ASP_NET_AJAX_just_became_easier.aspx</pheedo:origLink>
			<description>&lt;p&gt;One of the new features coming up in Q1 2012 for the RadEditor control is a new drop-down tool called "Format sets". We hope that this new editor command will make styling your content faster and easier. In its essence, the format sets drop-down combines the features of two existing editor tools - the paragraph styles and the apply CSS class and adds a new way to apply formatting to content.&lt;/p&gt; &lt;p&gt;&lt;img src="http://blogs.telerik.com:80//Libraries/ASP_NET_AJAX/format_sets.sflb?width=300&amp;height=300&amp;decreaseOnly=true" alt="Format Sets drop-down" /&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;The new tool will help you immensely if your site has a lot of CSS styles and it takes a long time to find the right one each time. It features three sets (groups) - Element, Inline, and Block. The Element set is contextual - what you see there will depend on the currently selected element in the editor. In the screenshot above an image is selected, so the Element set shows image related formatting. If the currently selected element has no formatting defined, the tool will show element formatting for the closest ancestor element of the currently selected one that has a defined set. For example selecting text in a table cell will show the table cell formatting options. The Inline formatting set will show options very similar to the ones you have in the Apply CSS class drop-down. Finally, the Block format set will show options the same as the Paragraph styles tool.&lt;/p&gt; &lt;p&gt;You can define what is shown in the new drop-down from three different places - from the editor tools file (ToolsFile.xml), from the editor declaration (.aspx or .ascx file), and from code (C#,VB). For more information about the Format Sets drop-down, visit our online documentation at &lt;a rel='nofollow' href="http://www.telerik.com/help/aspnet-ajax/radeditor-format-sets.html"&gt;Format Sets help&lt;/a&gt;&lt;/p&gt; &lt;p&gt;An online demo is also available right now, where you can see the new editor functionality in action. Download the Q1 2012 beta or head over to our demo server &lt;a rel='nofollow' href="http://demos.telerik.com/aspnet-ajax-beta/editor/examples/formatsets/defaultcs.aspx"&gt;http://demos.telerik.com/aspnet-ajax-beta/editor/examples/formatsets/defaultcs.aspx&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; &lt;a rel='nofollow' href="http://www.telerik.com/account/your-products/trial-product-versions/download-trial-file.aspx?fileid=12151&amp;pid=0&amp;dispkey=True" title="Telerik' AJAX Q1 2012 Beta is here" target="blank" re_target="blank"&gt; &lt;img src="http://blogs.telerik.com/Libraries/ASP_NET_AJAX/Blogs_banners-AJAX.sflb" alt="Telerik ASP.NET AJAX Q1 2012 Beta is here" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;About the author&lt;/h2&gt; &lt;img src="http://blogs.telerik.com/Libraries/ASP_NET_AJAX/StoyanStratev.sflb" alt="Stoyan Stratev" class="photo" /&gt; &lt;h3 class="fn"&gt;Stoyan Stratev&lt;/h3&gt; &lt;p&gt;Stoyan Stratev is the team lead of one of Teleriks ASP.NET AJAX teams. He joined the company in 2005 as a web developer and ever since he has been specializing in the integration of the Telerik components in third-party solutions, such as DotNetNuke and SharePoint. His main interests are the client side of web development and his team is responsible for the oldest Teleriks product  the RadEditor. &lt;/p&gt; &lt;p class="twit"&gt;----&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/Telerik/~4/-5umA3rxT_c" height="1" width="1"/&gt;&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=72a096205a744f6e870313d9e814f0f9&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=72a096205a744f6e870313d9e814f0f9&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>the telerik blogs</author>
			<pubDate>Mon, 13 Feb 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>AJAX Chat Application</title>
			<link>http://www.pheedcontent.com/click.phdo?i=e7bc1ff938de6810cfe307f2b12bb880</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-650457_AJAX_Chat_Application.aspx</pheedo:origLink>
			<description>The project illustrates how to design a simple AJAX web chat application....&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=e7bc1ff938de6810cfe307f2b12bb880&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=e7bc1ff938de6810cfe307f2b12bb880&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Sun, 12 Feb 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Hacking the browser cache with JQuery and ASP.NET MVC</title>
			<link>http://www.pheedcontent.com/click.phdo?i=344ce1fe6c8d424a73e8f50f2159d2fb</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-649523_Hacking_the_browser_cache_with_JQuery_and_ASP_NET_MVC.aspx</pheedo:origLink>
			<description>Although JQuery provides a very good support for caching responses from AJAX calls in the browser, it is always good to know how you can use http as protocol for making an effective use of it.  The first thing you need to do on the server side is to supports HTTP GETs, and identify your resources with different URLs for retrieving the data (The resource in this case could be just a MVC action). If you use the same URL for retrieving different resource representations, you are doing it wrong. An HTTP...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=344ce1fe6c8d424a73e8f50f2159d2fb&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=344ce1fe6c8d424a73e8f50f2159d2fb&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>Pablo M. Cibraro (aka Cibrax)</author>
			<pubDate>Fri, 10 Feb 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>The rise of Simple Page Applications (SPA) in Web Mobile</title>
			<link>http://www.pheedcontent.com/click.phdo?i=5ddce48e3ede9d80e5971a7ed96422d0</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-641370_The_rise_of_Simple_Page_Applications_SPA_in_Web_Mobile.aspx</pheedo:origLink>
			<description>Limited connectivity is one of the main challenges in web mobile. The stateless nature of http causes that&amp;nbsp; content&amp;nbsp; and associated static files like scripts or images be transmitted over the wire every time a page is fully refreshed (assuming http caching is not implemented correctly). Diverse techniques have emerged over the years to solve part of that problem by using the browser AJAX support. One of these techniques, which drastically changed the way we develop web applications is know...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=5ddce48e3ede9d80e5971a7ed96422d0&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=5ddce48e3ede9d80e5971a7ed96422d0&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>Pablo M. Cibraro (aka Cibrax)</author>
			<pubDate>Fri, 27 Jan 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>ASP .NET Image Slider with fancy thumbnail hover effect</title>
			<link>http://www.pheedcontent.com/click.phdo?i=7b119bfd6dcb45766a59882c07238e37</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-640274_ASP_NET_Image_Slider_with_fancy_thumbnail_hover_effect.aspx</pheedo:origLink>
			<description>This article aims to show that ASP .NET combined with jQuery/Ajax/Javascript produces user friendly and attractive websites....&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=7b119bfd6dcb45766a59882c07238e37&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=7b119bfd6dcb45766a59882c07238e37&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Wed, 25 Jan 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Asynchronous File Upload</title>
			<link>http://www.pheedcontent.com/click.phdo?i=8eea78f449fe90c6b60c382a3261b502</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-640153_Asynchronous_File_Upload.aspx</pheedo:origLink>
			<description>An Ajax control that enables a user to upload a file asynchronously with extra data...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=8eea78f449fe90c6b60c382a3261b502&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=8eea78f449fe90c6b60c382a3261b502&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Wed, 25 Jan 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Disable Label after some amount of time</title>
			<link>http://www.pheedcontent.com/click.phdo?i=6d22d0c554313e68ce42e0f270f21d2d</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-639804_Disable_Label_after_some_amount_of_time.aspx</pheedo:origLink>
			<description>Achieve the same using AJAX AnimationExtender Control. Use the below code                                                                                            in your code behind.lbl.Text = "Assign......&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=6d22d0c554313e68ce42e0f270f21d2d&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=6d22d0c554313e68ce42e0f270f21d2d&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Wed, 25 Jan 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>ScriptArguments: An easy way to programmatically pass arguments to script from codebehind</title>
			<link>http://www.pheedcontent.com/click.phdo?i=e5e07495efa0b2801c6256e92a386fba</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-633828_ScriptArguments_An_easy_way_to_programmatically_pass_arguments_to_script_from_codebehind.aspx</pheedo:origLink>
			<description>During my on-going adventures AJAXifying a crusty old business app I have been using a methodology by which most client events are setup in codebehind. The reason for this is I have easy access to my client ids, variables, and resources in codebehind....&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=e5e07495efa0b2801c6256e92a386fba&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=e5e07495efa0b2801c6256e92a386fba&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Sat, 14 Jan 2012 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Use AjaxManager to Generate JavaScript that calls the Server-Side Method</title>
			<link>http://www.pheedcontent.com/click.phdo?i=40545572ac9f43b8194dd8488f80ba7b</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-613073_Use_AjaxManager_to_Generate_JavaScript_that_calls_the_Server_Side_Method.aspx</pheedo:origLink>
			<description>Use AjaxManager to Generate JavaScript that calls the Server-Side Method...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=40545572ac9f43b8194dd8488f80ba7b&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=40545572ac9f43b8194dd8488f80ba7b&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>The Code Project Latest Articles</author>
			<pubDate>Sat, 10 Dec 2011 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>How To Invoke the JavaScript Console on Your iPad</title>
			<link>http://www.pheedcontent.com/click.phdo?i=b8b2cf3a7a1bea72991e6c4c84b8c466</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-600662_How_To_Invoke_the_JavaScript_Console_on_Your_iPad.aspx</pheedo:origLink>
			<description>Debugging AJAX on a mobile device is tricky at best. There are no Firebug or F12 tools available. This means we do not have a nice way to set break points or step through our code when there is an error. Not to mention how do you even know when there...(read more)...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=b8b2cf3a7a1bea72991e6c4c84b8c466&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=b8b2cf3a7a1bea72991e6c4c84b8c466&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>Chris Love's Official Blog - Professional ASP.NET</author>
			<pubDate>Fri, 18 Nov 2011 00:00:00 GMT</pubDate>
		</item>
		<item>
			<title>ASP.NET AJAX Release History : Q3 2011 (version 2011.3.1115)</title>
			<link>http://www.pheedcontent.com/click.phdo?i=af6e94aeeb735327e7b53aa6bc5aeb5a</link>
			<pheedo:origLink>http://dotnetslackers.com/Ajax/re-599549_ASP_NET_AJAX_Release_History_Q3_2011_version_2011_3_1115.aspx</pheedo:origLink>
			<description>New Controls  Org Chart - organization chart control with flexible rendering capabilities (rendered fields, templates, grouping in nodes, etc.), xml export/import functionality and data-binding to a variety of data sources.  Social Share - intuitively configurable widget for effortless content sharing via different social networks. Easy to be configured and customized, with multi-tracker Google Analytics support and optional 'Send email' form.       Common for all controls What's New   Added: New...&lt;p&gt;Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: &lt;a href='http://dotnetslackers.com/articles/default.aspx'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;br clear=&quot;both&quot; style=&quot;clear: both;&quot;/&gt;
&lt;a href=&quot;http://ads.pheedo.com/click.phdo?s=af6e94aeeb735327e7b53aa6bc5aeb5a&amp;p=1&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border: 0;&quot; border=&quot;0&quot; src=&quot;http://ads.pheedo.com/img.phdo?s=af6e94aeeb735327e7b53aa6bc5aeb5a&amp;p=1&quot;/&gt;&lt;/a&gt;
&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://tags.bluekai.com/site/5148&quot;/&gt;&lt;img alt=&quot;&quot; height=&quot;0&quot; width=&quot;0&quot; border=&quot;0&quot; style=&quot;display:none&quot; src=&quot;http://insight.adsrvr.org/track/evnt/?ct=0:8pyu3gz&amp;adv=wouzn4v&amp;fmt=3&quot;/&gt;</description>
			<author>Telerik News RSS Feed</author>
			<pubDate>Wed, 16 Nov 2011 00:00:00 GMT</pubDate>
		</item>
	</channel>
</rss>
