`

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中...

    php网络开发完全手册

    8.1 一维数组与多维数组 119 8.1.1 一维数组简介 119 8.1.2 多维数组简介 119 8.2 常用的数组操作 120 8.2.1 数组的创建与调用 120 8.2.2 数组的更新 121 8.2.3 数组元素的遍历 122 8.3 数组索引与键值的操作技巧 ...

    .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套件的一部分,它是一...

Global site tag (gtag.js) - Google Analytics