// 传过去一个简单值,获取一个简单值
$.ajax({
type: "GET",
url: '<%= Url.Action("xx", "Corp") %>',
data: "type=11",
success: function (msg) { alert(msg); }
});
public string xx()
{
string s = this.Request.QueryString["type"];
return s + ":ssssss";
}
// 获取一个复杂值
$.ajax({
url: '<%= Url.Action("xx", "Corp") %>',
type: "POST",
success: function(data) {
var obj = eval("(" + data + ")");
alert(obj.name);
}
});
// 这样更方便。
$.ajax({
url: '<%= Url.Action("xx", "Corp") %>',
type: "POST",
dataType:"json",
success: function(data) {
alert(data.name);
}
}); public ActionResult xx()
{
return this.Json( new
{
name = "Dr.Worm",
worm = "Programer"
} );
}
// 传过去一个复杂值,获取一个复杂值
$.ajax({
url: '<%= Url.Action("xx", "Corp") %>',
type: "POST",
dataType: "json",
data: "ID=1&FirstName=C&LastName=HY",
success: function(data) {
alert(data.ID + data.FirstName + data.LastName);
}
});
public JsonResult xx( FormCollection form )
{
return Json( new
{
ID = int.Parse(this.Request.Form[ "ID" ] ),
FirstName = "w:" + this.Request.Form[ "FirstName" ],
LastName = "s:" + this.Request.Form[ "LastName" ]
} );
}

客户端调用方式:

$("#ButAjax").click(function() {
$.ajax({
type: "POST", //默认是GET
url: "/AjaxTest/getPerson",
data: "ID=1&FirstName=C&LastName=HY",
async: true, //异步
cache: false, //不加载缓存
success: function(obj) {
alert(obj.ID + obj.FirstName + obj.LastName + obj.Man);
},
error: function() {
alert("请求失败");
}
});
});
$("#ButAjax2").click(function() {
$.ajax({
type: "POST", //默认是GET
url: "/AjaxTest/getPerson2?ID=3&FirstName=C&LastName=HY",
async: true, //异步
cache: false, //不加载缓存
success: function(obj) {
alert(obj.ID + obj.FirstName + obj.LastName + obj.Man);
},
error: function() {
alert("请求失败");
}
});
});
$("#ButAjax3").click(function() {
$.ajax({
type: "POST", //默认是GET
url: "/AjaxTest/getString",
async: true, //异步
cache: false, //不加载缓存
success: function(str) {
alert(str);
},
error: function() {
alert("请求失败");
}
});
});
$("#ButAjax4").click(function() {
$.ajax({
type: "POST", //默认是GET
url: "/AjaxTest/getJsonString",
async: true, //异步
cache: false, //不加载缓存
success: function(str) {
var obj = eval(str);
$.each(obj, function(item, value) {
alert(item + ":" + obj[item]);
});
},
error: function() {
alert("请求失败");
}
});
});
//================================================================
$("#ButJson1").click(function() {
$.getJSON("/AjaxTest/getJson1", { ID: "22", FirstName: "C1", LastName: "HY1" }, function(json) {
alert(json);
$.each(json, function(item, value) {
alert(item + ":" + json[item]);
});
});
});
$("#ButJson2").click(function() {
$.getJSON("/AjaxTest/getJson2", { ID: "22", FirstName: "C1", LastName: "HY1" }, function(json) {
alert(json);
$.each(json, function(item, value) {
alert(item + ":" + json[item]);
});
});
});
$("#ButJson3").click(function() {
$.getJSON("/AjaxTest/getJson3", { ID: "22", FirstName: "C1", LastName: "HY1" }, function(json) {
alert(json);
$.each(json, function(item, value) {
alert(item + ":" + json[item]);
});
});
});
$("#ButJson4").click(function() {
$.getJSON("/AjaxTest/getJsonSerializingJson", { ID: "22", FirstName: "C1", LastName: "HY1" }, function(json) {
alert(json);
$.each(json, function(item, value) {
alert(item + ":" + json[item]);
});
});
});
$("#ButJson5").click(function() {
$.getJSON("/AjaxTest/getJsonDeSerializingJson", { json: '{"ID":201,"FirstName":"C","LastName":"HY","Man":true}' }, function(json) {
alert(json);
$.each(json, function(item, value) {
alert(item + ":" + json[item]);
});
});
});
//================================================================
$("#ButSerializing").click(function() {
$.ajax({
type: "POST",
url: "/AjaxTest/testSerializingJson",
data: "ID=101&FirstName=C&LastName=HY&Man=false",
async: true,
cache: false,
success: function(obj) {
alert(obj);
},
error: function() {
alert("请求失败");
}
});
});
$("#ButDeSerializing").click(function() {
$.ajax({
type: "POST",
url: "/AjaxTest/testDeSerializingJson",
data: 'json={"ID":201,"FirstName":"C","LastName":"HY","Man":true}',
async: true,
cache: false,
success: function(obj) {
alert(obj.ID + obj.FirstName + obj.LastName + obj.Man);
},
error: function() {
alert("请求失败");
}
});
});
$("#ButSerializingList").click(function() {
$.ajax({
type: "POST",
url: "/AjaxTest/serializingList",
data: "",
async: true,
cache: false,
success: function(obj) {
alert(obj + "length:" + obj.length);
$.each(obj, function() {
$.each(this, function(item, value) {
alert(item + ":" + json[item]);
});
});
},
error: function() {
alert("请求失败");
}
});
});

Controllers 代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication.Controllers
{
public class Person
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool Man { get; set; }
}
public class AjaxTestController : Controller
{
#region ===============$.Ajax测试=================
/// <summary>
/// 测试返回对象
/// </summary>
/// <param name="form"></param>
/// <returns></returns>
public JsonResult getPerson(FormCollection form)
{
Person p = new Person
{
ID = int.Parse(form["ID"]),
FirstName = form["FirstName"],
LastName = form["LastName"]
};
return Json(p);
}
/// <summary>
/// 经测试发现:当Global中定义{controller}/{action}/{id}时
/// 前台url?ID=3&FirstName=C&LastName=HY传到后台时ID值为""
/// 所以把Global中定义为{controller}/{action}/{uid}
/// </summary>
/// <param name="ID"></param>
/// <param name="FirstName"></param>
/// <param name="LastName"></param>
/// <returns></returns>
public JsonResult getPerson2(string ID, string FirstName, string LastName)
{
Person p = new Person
{
ID = int.Parse(ID),
FirstName = FirstName,
LastName = LastName
};
return Json(p);
}
/// <summary>
/// 测试返回字符串
/// </summary>
/// <returns></returns>
public ContentResult getString()
{
return Content("{id:'2',FirstName:'C',LastName:'HY'}");
}
/// <summary>
/// 测试返回json字符串
/// </summary>
/// <returns></returns>
public ContentResult getJsonString()
{
return Content("({id:'2',FirstName:'C',LastName:'HY'})");
}
#endregion
#region ==============$.getJSON(返回json格式测试)============
/// <summary>
/// 经测试发现必须是双引号(")不能是单引号(')
/// </summary>
/// <param name="Code"></param>
/// <param name="FirstName"></param>
/// <param name="LastName"></param>
/// <returns></returns>
public ContentResult getJson1(string ID, string FirstName, string LastName)
{
return Content("{/"id/":1,/"name/":/"chy/",/"flag/":true}");
}
/// <summary>
/// 经测试发现必须是双引号(")不能是单引号(')
/// </summary>
/// <param name="Code"></param>
/// <param name="FirstName"></param>
/// <param name="LastName"></param>
/// <returns></returns>
public ContentResult getJson2(string ID, string FirstName, string LastName)
{
return Content("{/"id/":/"/",/"name/":/"chy/"}");
}
/// <summary>
/// 经测试发现必须是双引号(")不能是单引号(')
/// 产生错误前台没反应
/// </summary>
/// <param name="Code"></param>
/// <param name="FirstName"></param>
/// <param name="LastName"></param>
/// <returns></returns>
public ContentResult getJson3(string ID, string FirstName, string LastName)
{
return Content("{'id':'3'}");
}
#endregion
#region============Newtonsoft.Json.dll(json序列化和反序列化测试)=============
/// <summary>
/// $.Ajax序列化Json
/// </summary>
/// <param name="ID"></param>
/// <param name="FirstName"></param>
/// <param name="LastName"></param>
/// <returns></returns>
public ContentResult testSerializingJson(FormCollection form)
{
Person p = new Person
{
ID = int.Parse(form["ID"]),
FirstName = form["FirstName"],
LastName = form["LastName"]
};
return Content(Newtonsoft.Json.JsonConvert.SerializeObject(p));
} /// <summary>
/// $.Ajax反序列化json
/// </summary>
/// <param name="form"></param>
/// <returns></returns>
public JsonResult testDeSerializingJson(FormCollection form)
{
Person p = Newtonsoft.Json.JsonConvert.DeserializeObject<Person>(form["json"].ToString());
return Json(p);
}
/// <summary>
/// $.getJSON序列化Json
/// </summary>
/// <param name="ID"></param>
/// <param name="FirstName"></param>
/// <param name="LastName"></param>
/// <returns></returns>
public ContentResult getJsonSerializingJson(string ID, string FirstName, string LastName)
{
Person p = new Person
{
ID = int.Parse(ID),
FirstName = FirstName,
LastName = LastName
};
return Content(Newtonsoft.Json.JsonConvert.SerializeObject(p));
}
/// <summary>
/// $.getJSON反序列化json
/// </summary>
/// <param name="form"></param>
/// <returns></returns>
public ContentResult getJsonDeSerializingJson(string json)
{
Person p = Newtonsoft.Json.JsonConvert.DeserializeObject<Person>(json);
return Content(Newtonsoft.Json.JsonConvert.SerializeObject(p));
}
#endregion
#region================返回集合================
public JsonResult serializingList()
{
List<Person> ls = new List<Person>();
ls.Add(new Person
{
ID = ,
FirstName = "C",
LastName = "HY",
Man = false
});
ls.Add(new Person
{
ID = ,
FirstName = "Z",
LastName = "JJ",
Man = true
});
return Json(ls);
}
public JsonResult deSerializingList(string json)
{
List<Person> listP = new List<Person>();
List<string> listStr = json.Split(',').ToList<string>();
foreach (string s in listStr)
{
listP.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Person>(s));
}
return Json(listP);
}
#endregion
}
}

MVC+jquery+AJAX的几种方式的更多相关文章

  1. (转载)MVC + JQUERY + AJAX的几种方式

    MVC + JQUERY + AJAX的几种方式 // 传过去一个简单值,获取一个简单值 $.ajax({            type: "GET",         url: ...

  2. 通过XMLHttpRequest和jQuery实现ajax的几种方式

    AJAX大家已经都知道了,是为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,Jquery,Css……)重新融合的一个新的知识框架.而,XMLHttpR ...

  3. C# MVC 实现登录的5种方式

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.  学无止境,精益求精    小弟之前做过三月的MVC,后来又一直webFo ...

  4. Struts2实现ajax的两种方式

    基于Struts2框架下实现Ajax有两种方式,第一种是原声的方式,另外一种是struts2自带的一个插件. js部分调用方式是一样的: JS代码: function testAjax() { var ...

  5. Spring MVC处理异常的4种方式

    http://blog.csdn.net/ufo2910628/article/details/40399539 http://my.oschina.net/CandyDesire/blog/3333 ...

  6. MVC日期格式化的2种方式

    原文:MVC日期格式化的2种方式 假设有这样的一个类,包含DateTime类型属性,在编辑的时候,如何使JoinTime显示成我们期望的格式呢? using System; using System. ...

  7. mvc jquery ajax传递数组null问题

    mvc jquery ajax传递数,  areaIds是个int数组.后台action用list<int>接收.当我想传空值时,先用null传递,结果action收到的AreaIds竟然 ...

  8. JQuery 提供了两种方式来阻止事件冒泡。

    JQuery 提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function(event){ ...

  9. Checkbox框全选操作,form表单提交与jquery ajax提交两种处理方式

    //1.jquery ajax<script type="text/javascript"> $(function(){ var basePath = $(" ...

随机推荐

  1. USB枚举过程(1)

    总的过程 ① host检测到device,reset 获取设备描述符 host发获取设备描述符请求 ->setup ->data0 <-ack Divice 返回设备描述符 -> ...

  2. 野火STM32 Flash&sd卡模拟U盘

    在USB库文件mass_mal.c中添加对flash和sd读写的函数,USB库调用这些函数从而实现模拟U盘的功能 //mass_mal.c /* Includes ------------------ ...

  3. 关于 三星 I9100 (水货)

    前天陪好友去买水货9100,总结了一点经验,觉得挺有用的,今天整理一下写出来...有 需要的可以看看..原创整理.. 一,当然是检查外观(检查USB接口有没有磨损,检查摄像头是否有灰尘,检查屏幕是不是 ...

  4. [转]Android在初始化时弹出popwindow的方法 .

    转自:http://blog.csdn.net/sxsboat/article/details/7340759 留个人备用0.0 Android中在onCreate()时弹出popwindow,很多人 ...

  5. UI进阶 科大讯飞(1) 语音听写(语音转换成文字)

    一.科大讯飞开放平台: http://www.xfyun.cn/ 注册.登录之后创建新应用. 因为本项目只实现了语音听写,所以在SDK下载中心勾选语音听写单项SDK就可以了 开发平台选择iOS,应用选 ...

  6. MD5加密类方法

    package com.shkj.android.utils; import java.security.MessageDigest;import java.security.NoSuchAlgori ...

  7. CSS line-height 和 vertical-align 精解(上篇)

    声明本文转自:http://hi.baidu.com/wolongxzg/item/a39ef8299c984283af48f5b0 line-height属性的具体定义列表如下: 语法: line- ...

  8. 题外话(简识UML语言)

    PS:“不积小流无以成为江河,不积跬步无以至千里”,学习也好,吃饭也罢,做任何事情都需要一步一个脚印,逐步积累过程,最后才会知识越来越丰富,吃的越饱… 在学习过程中用到了一些框图,用于绘画框图的语言数 ...

  9. javascript第三方组件

    一.一个javascript文件上传组件.转载:http://www.cnblogs.com/fumj/archive/2012/12/07/2806673.html http://fineuploa ...

  10. access数据库密码破解

    根据C语言教学书上的示例编写,主要破解access的密码,通过异或算法,支持access2000和access2003,其他版本的没经过测试,下面是具体代码: #include <stdio.h ...