频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

ASP.NET 的MVC结构之AJAX

来源:www.cnblogs.com 作者:冯琦钧 出处:巧巧读书 2008-07-02 进入讨论组

        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技术专题.NET移动与嵌入式技术.NET开发手册专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
较早的文章:myPage分页控件 v2.0.0.2版本

较新的文章:DotNet的学习步骤
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章