MVC+jquery+AJAX的几种方式
// 传过去一个简单值,获取一个简单值
$.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的几种方式的更多相关文章
- (转载)MVC + JQUERY + AJAX的几种方式
MVC + JQUERY + AJAX的几种方式 // 传过去一个简单值,获取一个简单值 $.ajax({ type: "GET", url: ...
- 通过XMLHttpRequest和jQuery实现ajax的几种方式
AJAX大家已经都知道了,是为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,Jquery,Css……)重新融合的一个新的知识框架.而,XMLHttpR ...
- C# MVC 实现登录的5种方式
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷. 学无止境,精益求精 小弟之前做过三月的MVC,后来又一直webFo ...
- Struts2实现ajax的两种方式
基于Struts2框架下实现Ajax有两种方式,第一种是原声的方式,另外一种是struts2自带的一个插件. js部分调用方式是一样的: JS代码: function testAjax() { var ...
- Spring MVC处理异常的4种方式
http://blog.csdn.net/ufo2910628/article/details/40399539 http://my.oschina.net/CandyDesire/blog/3333 ...
- MVC日期格式化的2种方式
原文:MVC日期格式化的2种方式 假设有这样的一个类,包含DateTime类型属性,在编辑的时候,如何使JoinTime显示成我们期望的格式呢? using System; using System. ...
- mvc jquery ajax传递数组null问题
mvc jquery ajax传递数, areaIds是个int数组.后台action用list<int>接收.当我想传空值时,先用null传递,结果action收到的AreaIds竟然 ...
- JQuery 提供了两种方式来阻止事件冒泡。
JQuery 提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function(event){ ...
- Checkbox框全选操作,form表单提交与jquery ajax提交两种处理方式
//1.jquery ajax<script type="text/javascript"> $(function(){ var basePath = $(" ...
随机推荐
- 5540 asa 8.4 防火墙
配置等级策略,保证outside端口可以访问inside端口 access-list 100 extended permit icmp any any access-list 100 extended ...
- 原生JS修改标签样式为带阴影效果
代码如下: JS部分 //点击时候,改变样式 function GetCategoryInfo(value) { var getInfo = value.toString().split(','); ...
- c#学习之旅------01
一.交换两个数的值 //交换两个数的值 #region 方法一 , num2 = ;//待交换的两个数值 int temp;//临时变量 temp = num1; num1 = num2; num2 ...
- linux tail命令的使用方法详解 (转载)
本文介绍Linux下tail命令的使用方法.linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新 ...
- MySQL 日期时间
NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中.CURDATE()以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DAT ...
- Libvirt 虚拟化库剖析
讲到向外扩展计算(比如云计算),libvirt 可能是您从未听说过的最重要的库之一.libvirt 提供一种虚拟机监控程序不可知的 API 来安全管理运行于主机上的来宾操作系统.libvirt 本身不 ...
- GIT 中提示 please tell me who you are
如果使用git过程中出现了,please tell me who you are ,需要设置一下使用者的身份. 1.git config user.name "username" ...
- 负margin使用权威指南
自CSS2早在1998年,推荐表的使用已经慢慢褪色成背景和历史书中.正因为如此,CSS布局从那时起一直编码优雅的代名词. 的所有CSS概念设计师所使用,奖项可能需要给负margin的使用是最至少谈论的 ...
- 处理linux下面的mysql乱码问题(下面的utf8换成gb2312也是可以的)
有时候因为编码需要修改mysql的编码,windows下修改有图文界面简单一些,linux大家就可以参考下面的方法 默认登录mysql之后可以通过SHOW VARIABLES语句查看系统变量及其值 ...
- 用javascript实现简体和繁体字间的转换
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...