知识大全 Asp.net MVC 中Ajax的使用

Posted 函数

篇首语:其实最美好的日子就是,我对你闹,你对我笑。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Asp.net MVC 中Ajax的使用相关的知识,希望对你有一定的参考价值。

Asp.net MVC 中Ajax的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  MVC 抛弃了 WebForm那种高度封装的控件 让我们跟底层的HTML有了更多的亲近 可以更自由 更灵活的去控制HTML的结构 样式和行为 而这点对于Ajax的应有来说 MVC确实要比WebForm优秀很多 我对 MVC更便捷的使用Ajax做了一下探讨 拿出来分享 欢迎拍砖

  第一 直接写JS代码实现Ajax

  因为 浏览器端的代码能更好的控制 所以我们完全可以在HTML中直接通过JS发出Ajax请求 而在Controller的action中返回XML或者Json 来实现Ajax效果 这种方法是最原始的方法 需要考虑浏览器和诸多问题 不推荐使用

  参考代码如下

  JS代码

  view plain var xhr function getXHR()

   try xhr=new ActiveXObject( Msxml XMLHTTP ) catch (e) try xhr=new ActiveXObject( Microsoft XMLHTTP ) catch (e) xhr=false if(!xhr&&typeof XMLHttpRequest!= undefined )

   xhr=new XMLHttpRequest() return xhr function openXHR(method url callback)

   getXHR() xhr open(method url) xhr onreadystatechange=function()

   if(xhr readyState!= )return callback(xhr) xhr send(null) function loadXML(method url callback)

   getXHR() xhr open(method url) xhr setRequestHeader( Content Type text/xml ) xhr setRequestHeader( Content Type GBK ) xhr onreadystatechange=function()

   if(xhr readyState!= )return callback(xhr) xhr send(null)

  后台代码

  view plain public ActionResult GetNews(int CategoryID)

   NewsCollectionModel newnewsCollection = new NewsCollectionModel() …………

  JsonResult myJsonResult = new JsonResult() myJsonResult = newsCollection return myJsonResult

  第二种 使用Jquery进行Ajax调用

  在VS 中 IDE全面支持Jquery的智能显示 在开发中使用Jq来实现JS效果非常的棒 而且可以节省很多精力和时间 所以在Ajax中使用JQuery进行开发 也是一种不错的方法

  大概的实现代码如下

  view plain <% using (Html BeginForm( AddComment Comment FormMethod Post new @class= hijax )) %> <%= Html TextArea( Comment newrows= cols= ) %> <button type= submit >Add Comment</button> <span id= indicator ><img src= alt= loading…… /></span> <% %>在View中引用Jquery <script src= min js type= text/javascript ></script>添加下面脚本 <script type= text/javascript > //execute when the DOM has been loaded $(document) ready(function () //wire up to the form submit event $( form hijax ) submit(function (event) event preventDefault()   //prevent the actual form post hijack(this update_sessions ) )

  function hijack(form callback format) $( #indicator ) show() $ ajax( url form action type thod dataType format data $(form) serialize() pleted $( #indicator ) hide() success callback )

  function update_sessions(result) //clear the form $( form hijax )[ ] reset() $( #ments ) append(result)

  </script>

  第三种方法 使用微软自带的Ajax Helper框架来实现

  view plain <% using (Ajax BeginForm( AddComment new AjaxOptions HttpMethod = POST UpdateTargetId = ments InsertionModeInsertionMode = InsertionMode InsertAfter )) %>

  <%= Html TextArea( Comment newrows= cols= ) %> <button type= submit >Add Comment</button>

  <% %>

  第二种和第三种方法在博客园有篇博客中有所讲解 我直接进行了引用 具体地址如下

  主要是对Ajax helper记录下我自己的看法和注意的事项

  第一 Ajax Helper是微软提供的一种Ajax框架 为了使用Ajax Helper必须使用微软提供的两个Js框架

  <script src= type= text/javascript ></script> <script src= type= text/javascript ></script>第二 Ajax Helper有几个用法

  Ajax ActionLink() 它将渲染成一个超链接的标签 类似于Html ActionLink() 当它被点击之后 将获取新的内容并将它插入到HTML页面中

  Ajax BeginForm() 它将渲染成一个HTML的Form表单 类似于Html BeginForm() 当它提交之后 将获取新的内容并将它插入到HTML页面中

  Ajax RouteLink() Ajax RouteLink()类似于Ajax ActionLink() 不过它可以根据任意的routing参数生成URL 不必包含调用的action 使用最多的场景是自定义的IController 里面没有action Ajax BeginRouteForm() 同样Ajax BeginRouteForm()类似于Ajax BeginForm() 这个Ajax等同于Html RouteLink()

  而每个方法里面的参数会有所不同 具体的用法见 cn/library/system web mvc ajaxhelper_methods(v=VS ) aspx其中一个重要的参数为 AjaxOption 存在有以下几个属性 主要是来规定Ajax的行为的

  名称 描述Confirm 获取或设置提交请求之前 显示在确认窗口中的消息

  HttpMethod 获取或设置 HTTP 请求方法( Get 或 Post )

  InsertionMode 获取或设置指定如何将响应插入目标 DOM 元素的模式

  LoadingElementDuration 获取或设置一个值(以毫秒为单位) 该值控制显示或隐藏加载元素时的动画持续时间

  LoadingElementId 获取或设置加载 Ajax 函数时要显示的 HTML 元素的 id 特性

  OnBegin 获取或设置更新页面之前 恰好调用的 JavaScript 函数的名称

  OnComplete 获取或设置实例化响应数据之后但更新页面之前 要调用的 JavaScript 函数

  OnFailure 获取或设置页面更新失败时 要调用的 JavaScript 函数

  OnSuccess 获取或设置成功更新页面之后 要调用的 JavaScript 函数

cha138/Article/program/net/201311/12836

相关参考

知识大全 ASP.NET 的MVC结构之AJAX

ASP.NET的MVC结构之AJAX  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET

知识大全 在ASP.NET里 MVC框架添加AJAX支持

在ASP.NET里MVC框架添加AJAX支持  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一引言&

知识大全 事实证明Ajax的世界更需要ASP.NET MVC

事实证明Ajax的世界更需要ASP.NETMVC  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 asp.net中使用jquery的ajax来post数据的树控件

   我相信大部门的net开发人员还在完全使用框架开发或者有一部分人是和mvc项目都有在做对于传统的如果要有好的体验那么ajax效果当然不可少…  &

知识大全 ASP.NET中使用AJAX的简单方法

ASP.NET中使用AJAX的简单方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  据我所知这

知识大全 ASP.NET中AJAX编程开发指南

ASP.NET中AJAX编程开发指南  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixin

知识大全 在ASP.NET中使用AJAX的简单方法

在ASP.NET中使用AJAX的简单方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  介绍  

知识大全 ASP.NET中使用无框架的Ajax实例

ASP.NET中使用无框架的Ajax实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们需要

知识大全 ASP.NET 2.0 AJAX中Webservice调用方法

ASP.NET2.0AJAX中Webservice调用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 在PHP中使用ASP.NET AJAX

在PHP中使用ASP.NETAJAX  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!编写Servic