ASP.NET Web Form下的AJAX
在传统的Asp.Net下,如果不使用Asp.Net Ajax或者如Ajax.Net此类第三方的框架,就需要一个空白的页面,并且在此页面的Page_Load方法中完成所有的服务器端的操作,通过Response将数据传回客户端,提交给JavaScript来处理。各人认为,这种方法的一个不好的地方就是一个页面只能完成一项功能,即使这个功能再简单。
ASP.NET MVC下的AJAX
在Asp.Net MVC中,每一个Request都被route到一个Controller下的Action来处理,即一个Controller Class的一个方法。因此,如果在Action方法中完成业务逻辑,并把需要回传的数据写回到Response中,在客户端再由JavaScript来处理这些回传的数据,相信也能实现AJAX。基于这个想法,做了一个小小的Demo,实现了asp.net mvc下的ajax。
为了方便起见,客户端JavaScript的功能就通过jQuery来实现了。
页面文件:
Html Code
其中的$(document).ready(…..)是jQuery下的JavaScript实现,有兴趣的朋友可以看看jQuery官网和中文社区。
在来看一下Controller中的对应的Action方法:
| public void SearchUserAjax() { string uerid = Request["name"]; List<UserLunchList> lunchs = ( from userlunch in repository.UserLunchLists.ToList() where userlunch.UserID == int.Parse(uerid) select userlunch ).ToList(); StringBuilder sb = new StringBuilder(); sb.Append("<table id='LunchList' style='display:none'><tr><th>User</th><th>Time</th><th>Price</th></tr>"); foreach (UserLunchList lunch in lunchs) { sb.Append("<tr><td>" + lunch.User.UserName + "</td><td>" + lunch.Time.ToShortDateString() + "</td><td>" + lunch.Cost + "</td></tr>"); } sb.Append("</table>"); Response.ContentType = "text/html"; Response.Write(sb.ToString()); } |
说穿了很简单,就是把想要的数据直接写到Response中就可以了,这里为了方便起见,就是写好了Table的格式。有一个地方需要注意的就是这个语句
Response.ContentType = "text/html" 很重要,它告知JavaScript以何种格式来处理Response中的数据。
核心内容就这么简单,呵呵。
如果觉得写JavaScript代码烦的话,可以使用extension方法,自定一个Html.Form或者其它的控件。
相关专题
- Ajax技术专题 (575篇文章)
- .NET移动与嵌入式技术 (6206篇文章)
- .NET开发手册 (5886篇文章)
- Ajax技术应用开发 (575篇文章)
- ASP.NET教程 (8711篇文章)
- JAVA和.Net开发 (111篇文章)
- ASP.NET应用篇 (2746篇文章)
- Asp.NET大文件上传组件开发总结(二)---提取文 (65次浏览)
- SilverLight数据库访问示例 (61次浏览)
- ASP.NET系统用户权限设计 (53次浏览)
- ASP.Net2.0 数据绑定控件的优越性 (51次浏览)
- ASP.NET 2.0个性化配置(profile) (48次浏览)
- ASP.NET专家访谈之二:需要马上升级到VS2008 (43次浏览)
- 自定义分页控件源码asp.net(c#) (41次浏览)
- Asp.net的Session过期 (37次浏览)
- VS2008 和.NET Framework3.5新功能及相关技术 (37次浏览)
- Web.config详解+asp.net优化方法 (34次浏览)



