`

8.1Ajax类库介绍

阅读更多
在ASP.NET MVC中使用
-Microsoft ASP.NET Ajax
-jQuery


Ajax的使用范围
-适合Ajax的场景
-不适合Ajax的场景
  Ajax软肋:
    不保存Http状态,没有回退,状态保留
    不支持JavaScript脚本
    Ajax成瘾症


Ajax使用实例
-每个Ajax请求都会制定确定的Action
-Action会判断是否来自Ajax
-针对Ajax请求必须返回一个特殊的View

脚本启用问题
<%using (Ajax.BeginForm(“HelloAjax”,
new AjaxOptions{ UpdateTargetId= “results” }))
{ %>
<%= Html.TextBox(“query”, null, new {size=40}) %>
<input type=”submit” />
<%} %>
<div id=”results”></div>

<script src=”/Scripts/MicrosoftAjax.js” type=”text/javascript”></script>
<script src=”/Scripts/MicrosoftMvcAjax.js” type=”text/javascript”></script>

写在低下,页面先加载后加载脚本
加载是阻塞模式,后加载脚本好  //小技巧

Action
public string HelloAjax(string query)
{
return “You entered: “ + query;

}


<form action="/Home/HelloAjax" method="post"
onsubmit=”Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event),
{ insertionMode: Sys.Mvc.InsertionMode.replace,
updateTargetId:'result'});">
js禁用咋办?

解决脚本启用问题
x-requested-with: XMLHttpRequest
query=Hello%20Ajax!&X-Requested-With=XMLHttpRequest

检查是否有x-requested-with

public ActionResultHelloAjax(string query)
{
//确认请求来自于ajax
string isAjaxPost= Request.Form[“X-Requested-With”] ??
Request.Headers[“X-Requested-With”];
if (!String.IsNullOrEmpty(isAjaxPost))
{return Content(“You entered: “ + query);} //ajax
return RedirectToAction(“Index”, new { query = query }); //http请求
}}
//有魔术字[“X-Requested-With”] ,应该用函数封装

//make sure this is an Asynchpost
if (Request.IsAjaxRequest())// 这是微软自带的
{
return Content(“You entered: “ + query);
}
else
{
return RedirectToAction(“Index”, new { query = query });
}
}

使用PrtialView返回
[<%if(ViewData.Model.Count>0){ %>
<table cellpadding=”5”>
<tr><td><b>Product</b></td>
<td><b>Price</b></td></tr>
<%foreach(MVCAjax.Models.Productp in ViewData.Model)
{ %>
<tr><td><%= Html.Encode(p.ProductName) %></td>
<td><%= p.UnitPrice%></td></tr>
<%} %>
</table>
<%} %>

PartialView返回
IList<Product> products = new List<Product>();
if(!String.IsNullOrEmpty(query)){
NorthwindDataContextdb= new NorthwindDataContext();
varproducts = from p in db.Products
where p.ProductName.StartsWith(query)
select p).ToList();
}
if(Request.IsAjaxRequest())
{return View(“ProductSearchResults”, products);
}else{
return View(products);
}
<div id=”results”><%Html.RenderPartial(“ProductSearchResults”, ViewData.Model); %></div>


2011-4-22 23:54 danny
分享到:
评论

相关推荐

    struts2.1.8.1+jquery1.4.2返回json数据.pdf

    本文将详细介绍如何使用Struts2.1.8.1与jQuery1.4.2来返回JSON数据,包括必要的依赖包引入、后端逻辑编写以及配置文件设置等方面。 #### 一、引入必要依赖包 为了使Struts2能够支持JSON数据格式,我们需要引入一...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    程序描述:本章介绍开发AJAX的开源框架GWT(Google Web Toolkit) 。最典型的Google Maps和Gmail等Google服务也正是基于此框架开发的。读者将能够快速掌握GWT的各种开发所涉及到的内容。 /firstgwt/FirstGWT....

    jquery easy UI+spring3.0+struts2.1.8.1+hibernate3.5整合的CRM包括所有Jar包

    下面将详细介绍这些组件以及它们之间的整合方式。 首先,jQuery EasyUI是一个基于jQuery的UI库,它提供了一系列轻量级、易于使用的组件,如对话框、表格、菜单等,用于快速构建用户界面。EasyUI简化了前端开发,使...

    struts2.1.8+spring2.5.6

    Struts2.1.8版本包含了对Ajax的支持,以及与各种视图技术(如JSP、FreeMarker、 Velocity)的集成,使得开发者能够构建动态、交互性强的Web应用。 **Spring2.5.6** Spring框架以其轻量级、非侵入式的设计理念深受...

    server2012-net- framework-3-5

    这个版本引入了许多新特性,如LINQ(Language Integrated Query,语言集成查询)、ASP.NET AJAX、WCF(Windows Communication Foundation)以及WF(Windows Workflow Foundation)等,这些都极大地提升了开发者的...

    PHP入门到精通

    8.1Web页表单元素的组成 8.2在普通的Web页中插入表单 8.3获取表单数据的两种方法 8.4PHP传参的常用方法 8.5在Web页中嵌入PHP脚本 8.6在PHP中获取表单数据 8.7对URL传递的参数进行编码解码 8.8PHP与Web表单的综合应用...

    PHP入门到精通02

    8.1Web页表单元素的组成 8.2在普通的Web页中插入表单 8.3获取表单数据的两种方法 8.4PHP传参的常用方法 8.5在Web页中嵌入PHP脚本 8.6在PHP中获取表单数据 8.7对URL传递的参数进行编码解码 8.8PHP与Web表单的综合应用...

    Win8_Net3.5.zip

    2. **Base Class Library (BCL)**:提供了一系列类库,供开发者使用,涵盖输入/输出、网络通信、数据访问等多个领域。 3. **ASP.NET 3.5**:用于构建Web应用程序,增加了对Ajax的支持,提升了用户体验。 4. **...

    struts2与json整合

    根据给定的部分内容,可以看到使用的是`struts2-json-plugin-2.1.8.1.jar`这个JAR包。该插件包含处理JSON相关的类库,使得Struts2能够识别并处理JSON格式的数据。具体来说,插件中的`struts-plugin.xml`配置文件定义...

    精通JS脚本之ExtJS框架.part2.rar

    分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、对Ajax的支持...

    精通JS脚本之ExtJS框架.part1.rar

    分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、对Ajax的支持...

    Net35.zip

    6. **ASP.NET 3.5**:更新了Web Forms、ASP.NET AJAX、ASP.NET MVC等技术,增强了Web开发能力,引入了更高效的页面生命周期管理,以及对异步处理和AJAX的支持。 7. **ADO.NET Entity Framework**:这是.NET 3.5中...

    .netframework 3.5

    它的核心组成部分包括公共语言运行时(CLR)和类库,这些类库提供了丰富的API集合,支持多种编程语言,如C#、VB.NET和C++/CLI。 2. **WCF(Windows Communication Foundation)**: WCF是.NET Framework 3.5中的一...

    ext如何与struts2整合

    对于Myeclipse 5.5,需要手动添加8.5或8.6版本中的支持jar到项目类库。 整合的关键步骤包括: 1. 准备工作: 在原有的Struts2项目中,除了基本的Struts2库,还需要引入两个额外的jar包:struts2-json-plugin-2.1....

    ZenTaoPHP.pdf

    #### 一、ZenTaoPHP框架介绍 **1.1 什么是ZenTaoPHP?** ZenTaoPHP是一款轻量级、高效且友好的PHP MVC开发框架。该框架的设计理念深受《编程之道》与《编程之禅》两本书的影响,“Zen”代表着“禅”,而“Tao”则意...

    ExtJs2.0简明教程

    ExtJS提供了强大的数据处理能力,可以通过Ajax技术与服务器端进行通信,实现数据的加载、保存等功能。 ### 八、数据存储Store #### 8.1 Store Store是ExtJS中用于存储数据的模型。它可以连接到远程数据源,实现...

    struts2核心jar包

    这个"struts2核心jar包"是Struts2框架的核心组件,包含了运行一个Struts2应用所需的基础类库和接口。在开发过程中,这个jar包扮演了至关重要的角色,因为它是实现Struts2功能的基础。 1. **Struts2框架概述** ...

    网页版ATM系统

    开发平台为Windows 8.1,这是微软发布的一款个人计算机操作系统,提供了良好的用户体验和高效的系统性能。 在数据库方面,项目选择了ACCESS 2010作为数据存储和管理的核心。Access是微软Office套件的一部分,它是一...

    JavaScript权威指南(第6版)(中文版)

    19.6 jQuery中的Ajax 19.7 工具函数 19.8 jQuery选择器和选取方法 19.9 jQuery的插件扩展 19.10 jQuery UI类库 第20章 客户端存储 20.1 localStorage和sessionStorage 20.2 cookie 20.3 利用IE userData持久化数据 ...

Global site tag (gtag.js) - Google Analytics