AJAX的好处就是不会堵塞页面,可以提高用户体验,可以减少数据传输尺寸,提高应用程序的性能.目前,AJAX技术可以说是已经成为WEB开发的标准技术.
AJAX技术是纯客户端技术,任何客户端框架(如:Microsoft AJAX Library,Prototype,JQuery等)可以与任何服务器技术配合.在ASP.NET MVC P5中也对AJAX技术进行了整合.本文将以ASP.NET MVC中的AJAX应用为主题介绍下AJAX技术与ASP.NET MVC的整合应用.
在此我希望在阅读本文的你应该对AJAX技术的数据传输模式比较清楚,详细可以查看我之前写的两篇关于AJAX的数据传输模式的文章:探索AJAX中的消息传输模式(一) 探索AJAX中的消息传输模式(二)
一、实现原理分析
在ASP.NET MVC中,每一个请求(Request)都将会被Route到控制器(Controller)下的一个具体的行为(Action)来处理.那么,如果说我们需要在ASP.NET MVC中使用AJAX,只需要在Action方法中完成业务逻辑,并把需要回传的数据写回到Response中,在客户端就可以通过JavaScript来处理这些回传数据.
对的,以上思路是完全可行的,ASP.NET MVC的每个Action就相当于Java Web MVC框架的Struts里的Servliet一样,是完全可以通过Request请求和Response来响应请求的.
我们可以先做个测试,建立一个ASP.NET MVC应用程序,Views里新建立Ajax目录,以及新建一Controller(AjaxController),并提供一个Action方法AjaxServer,该方法需要接受一个参数,然后将参数传转换为大写后放入Response流.
OK,现在启动项目并通过访问:http://localhost:2832/Ajax/AjaxServer?str=abcdefg查看运行结果,页面上输出了ABCDEFG,这正是我们想要的效果,证明上面的思路是正确的.那好,下面我就用一个简单的Ajax请求来实现在ASP.NET MVC中最简单的AJAX应用.
二、在ASP.NET MVC中最简单的AJAX应用
这个应用示例将使用最原始的XMLHttpRequest对象来完成。如下示例代码:
这个示例很简单,就是通过之前做测试的Action方法,使用XMLHttpRequest直接发起请求,将页面文本框里输入的字符传递到ASP.NET MVC的Action,然后将回传的结果显示在页面上的一个div里。Html的代码如下:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1<inputtype="text"id="txt"/><br/>
2<inputtype="button"value="AjaxRequest"onclick="AjaxRequest();"/>
3<hr/>
4<divid="result"></div>
OK,我们使用XMLHttpRequest的AJAX应用可以实现,那么如果需要将上面的应用示例转化为如Microsoft AJAX Library,Prototype,JQuery等类似的框架上同样也是如鱼得水,复杂的数据同样可以将起序列化为JSON或是XML后进行传输.
三、在ASP.NET MVC中使用Microsoft AJAX Library
上面介绍了使用XMLHttpRequest对象来完成AJAX应用,下面我们来看看怎么在ASP.NET MVC中使用Microsoft AJAX Library.首先建立一新的ASP.NET MVC页面MsAjaxLibrary.aspx,并在控制器里加入相应的Action方法:
OK,现在我们需要将Microsoft AJAX Library引入页面:
有了上面的准备,下面就可以编写客户端JavaScript来进行AJAX请求了,这里我们将使用Microsoft AJAX Library的Sys.Net.WebRequest类来完成AJAX调用.AJAX服务端将继续使用本文之前的Action方法(AjaxServer)做为服务器来进行请求调用。完整的JS代码如下:
OK,现在我们在客户端通过一个按扭来执行请求,并将响应的结果放置在一个叫result的div容器里。
程序运行结果如下:
关于ASP.NET MVC与JQuery、ExtJS等其他的框架的集成使用这里就不在介绍了,有兴趣的朋友可以查看相关资料了解。本文作为ASP.NET MVC和AJAX技术整合使用的基础性文章,希望能对学习在ASP.NET MVC中使用AJAX的朋友起到入门的帮助,
本文示例代码下载:点击这里下载
相关文章:
在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService
分享到:
相关推荐
3. **ASP.NET AJAX框架**:微软在ASP.NET 2.0中引入了AJAX扩展,包括UpdatePanel、ScriptManager、Timer等控件,这些工具简化了在ASP.NET中集成AJAX的功能。书中会详细介绍这些控件的工作方式和使用场景。 4. **ASP...
第II卷》是一本深度探讨ASP.NET AJAX技术的专业书籍,专注于客户端的Microsoft.AJAX.Library以及异步通信层。ASP.NET AJAX是微软推出的一个强大的框架,它允许开发者在ASP.NET环境中构建高度交互性和响应式的Web应用...
在本课程"ASP.NET AJAX深入浅出系列课程(11):Microsoft AJAX Library中异步通信层使用"中,我们将重点探讨Microsoft AJAX Library中的异步通信层,它是实现页面无刷新更新的核心组件。 首先,我们要理解什么是AJAX...
9. **Integration with MVC**:ASP.NET AJAX也能很好地与ASP.NET MVC框架集成,通过Ajax.BeginForm和Ajax.ActionLink等辅助方法,可以轻松实现MVC中的Ajax请求。 10. **Progress Indicators**:在长时间运行的Ajax...
- **MVC模式**:了解如何在ASP.NET MVC框架中集成AJAX,以保持清洁的架构。 6. **错误处理和调试** - **AJAX错误处理**:处理AJAX请求失败的情况,包括客户端和服务器端的错误。 - **调试技巧**:使用Visual ...
3. 客户端异步调用:在ASP.NET AJAX中,可以通过XMLHttpRequest对象(由ASP.NET AJAX库包装)发起异步请求。这些请求可以调用服务器端的Web方法,获取或发送数据,而无需完整页面生命周期。异步调用使得Web应用能够...
这个深入浅出系列课程视频(9)将深入讲解如何有效地使用ASP.NET AJAX进行开发,特别是通过Microsoft AJAX Library中的面向对象特性。 首先,我们来理解一下Microsoft AJAX Library。这是ASP.NET AJAX的核心库,...
"WebLib"可能是项目中包含类库代码的文件夹,而"pubs"可能是一个示例Web应用程序,展示了如何在实际项目中使用jQuery-Based Ajax.Net Library。 要了解和使用这个类库,你需要打开"pubs.sln"在Visual Studio 2008中...
**ASP.NET中的Ajax支持** - **UpdatePanel**:ASP.NET Web Forms中的一个控件,可以实现部分页面更新,无需编写复杂的JavaScript代码。 - **jQuery和jQuery UI**:这些流行的JavaScript库简化了Ajax操作,并提供了...
在.NET环境中,通常会配合使用ASP.NET MVC或Web API来处理这些Ajax请求。服务器端的控制器会接收并处理这些请求,然后返回相应的JSON或XML数据。这些数据可以是数据库查询的结果、业务逻辑的处理结果或者任何需要...
【ASP.NET数据绑定控件】在ASP.NET中,DetailsView控件可以显示单条记录的详细信息,并支持添加、删除和修改操作。 【自定义异常】在Java中,自定义异常类通常继承Exception类,用于给出更具体的错误信息。自定义...
4. **ASP.NET AJAX 框架**:ASP.NET AJAX 框架包含多个组成部分,如AJAX Library 类库,AJAXControlToolkit 工具包等,但不包括AJAX TCP 增强组件。 5. **JSP 表达式语言(EL)**:EL 是从 JSP2.0 规范开始支持的...
理解MVC架构原理以及如何在C#.NET中实现它是非常关键的。 4. **Web API开发**:对于构建RESTful服务,ASP.NET Web API是一个强大的工具。它使得构建HTTP服务变得简单,这些服务可以被各种客户端,包括浏览器和移动...
2、 Ajax我们主要应用就是xmlhttprequest,回调函数实现局部刷新达道数据更新! 4.2需求分析 Blog网站主要是实现注册用户登录、管理相关信息、博文及相关评论、查看留言、友情链接、及图片的上传和图像的播放而为...