Click here to Skip to main content
Click here to Skip to main content

AJAX with ASP.NET MVC

By , 25 Aug 2009
 

Introduction

ASP.NET AJAX enables a Web application to retrieve data from the server asynchronously and to refresh parts of the existing page. This improves the user experience by making the Web application more responsive and enables you to create amazing Web 2.0 applications to delight your users. In this article, I will show you how to build an AJAX-enabled ASP.NET MVC application.

Background

To create a new MVC project, see ASP.NET MVC application structure. I will consume a currency convertor web service which is freely available at WebserviceX.NET.

Using the Code

To reference the ASP.NET AJAX script libraries, add the following markup at the end of the head element in Site.Master:

<script src="<%= Url.Content("~/Scripts/MicrosoftAjax.js") %>" 
        type="text/javascript"></script>  
    <script src="<%= Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>" 
        type="text/javascript"></script>

To reference the web service, right click on project and then click on add web reference as shown below:

Add the following code after the About method in HomeController.cs:

public string getConversionRate(string CurrencyFrom, string CurrencyTo)
{
CurrencyConvertor curConvertor = new CurrencyConvertor();

double rate = curConvertor.ConversionRate((Currency)Enum.Parse(typeof(Currency), 
		CurrencyFrom), (Currency)Enum.Parse(typeof(Currency), CurrencyTo)); 

return rate.ToString(); 
}

Add the following code in index view:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
	Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<h2>Currency Converter </h2>
<% using (Ajax.BeginForm("getConversionRate", new AjaxOptions 
				{ UpdateTargetId = "Result" }))
 { %>
<%= Html.DropDownList( 
"CurrencyFrom", 
new [] 
{ 
new SelectListItem 
{ 
Text = "Canada", 
Value = "CAD" 
}, 
new SelectListItem 
{ 
Text = "USA", 
Value = "USD" 
}, 
new SelectListItem 
{ 
Text = "UK", 
Value = "GBP" 
} 
}, 
"From this currency:" 
) %> 
<%= Html.DropDownList( 
"CurrencyTo", 
new [] 
{ 
new SelectListItem 
{ 
Text = "Canada", 
Value = "CAD" 
}, 
new SelectListItem 
{ 
Text = "USA", 
Value = "USD" 
}, 
new SelectListItem 
{ 
Text = "UK", 
Value = "GBP" 
}
}, 
"To this currency:" 
) %> 
<input type="submit" value="Submit"/><br />
<h1><span id="Result"></span></h1>
<% } %>
</asp:Content>

Now you can run the application and it will render the page as shown below:

currency1.jpg

Summary

In this article, we examined AJAX with ASP.NET MVC. We built a currency convertor application by consuming a web service which is freely available at WebserviceX.NET.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Farooq Kaiser
Software Developer (Senior) http://www.Fairnet.com
Canada Canada
Member
12+ years of complete software development life cycle experience for web based applications and multi-tier client-server desktop, primarily using LINQ, WCF, WWF, C#, ASP.NET, XML, XSLT, AJAX, Winforms,Visual Basic, JavaScript, JQuery, Google APIs, C++, VB.NET, C, ATL/COM, Open XML. Extensively involved in the requirement analysis, feasibility study, conceptualization, planning, architecture/design, configuration, development, quality assurance, implementation and release of the software products.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionThe request failed with empty responsememberyerramilli4 Dec '12 - 0:11 
When I work on the same code, downloaded version I am getting the error
"The request failed with empty response"
 
at WeatherForecasts wfs = wf.GetWeatherByPlaceName(Id);
 
Please help.
QuestionQuestions about Ajax Processmemberkate08248 Jun '11 - 16:55 
I wonder whether the controller manage module will create a new controller instance(or AsynController instead)if we use AjaxHelper(Ajax.ActionLink for example).
I am not sure about this and do look forword for your response. Thank you!
GeneralAJAX with ASP.NET MVCmembersujan_mc28 Oct '10 - 2:45 
Lets take the following situation:
1 dropdown for "Source"
1 dropdown for "To"
3 Textbox to display some predefined data.
 
How do I use my model to populate the data for all the above mentioned data controls?
Sujan Kr Ghosh

QuestionAJAX with ASP.NET MVCmembersujan_mc28 Oct '10 - 2:41 
How can i have multiple button & map different Ajax function calls for each button?
 
How do I map the the Ajax method name with the button click event(submit)?
Sujan Kr Ghosh

Generalgood articlememberDonsw2 Jun '10 - 10:51 
Good article. really to the point which is what I like, the only piece of improvement I would suggest is the picture is a little fuzzy you can also write down the web references that were shown as part of the image.
cheers,
Donsw
My Recent Article : CDC - Change Data Capture

GeneralThanks. Very helpful.memberGautam Jain15 Oct '09 - 0:32 
Thank you very much. Your article was very helpful.
 
Regards,
Gautam Jain
 
Regards,
Gautam Jain
http://www.conceptworld.com

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web04 | 2.6.130523.1 | Last Updated 25 Aug 2009
Article Copyright 2009 by Farooq Kaiser
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid