使用到:Jquery.js 以及 Newtonsoft.Json.dll

客户端调用方式:

$("#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\":\"2\",\"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 = 1,
FirstName = "C",
LastName = "HY",
Man = false
});

ls.Add(new Person
{
ID = 2,
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
}
}

转载原文:http://blog.163.com/china__xuhua/blog/static/1997231692011101842121717/

asp.net MVC 使用JQuery.Ajax的更多相关文章

  1. asp.net mvc 接收jquery ajax发送的数组对象

    <script type="text/javascript"> $(function () { var obj = { name: "军需品", m ...

  2. ASP.NET MVC学习之Ajax(完结)

    一.前言 通过上面的一番学习,大家一定收获不少.但是总归会有一个结束的时候,但是这个结束也意味着新的开始. 如果你是从事ASP.NET开发,并且也使用了第三方控件,那么一定会觉得ASP.NET开发aj ...

  3. bootstrap-data-target触发模态弹出窗元素的data使用 data-toggle与data-target的作用 深入ASP.NET MVC之九:Ajax支持 Asp.Net MVC4系列--进阶篇之AJAX

    bootstrap-data-target触发模态弹出窗元素的data使用 时间:2017-05-27 14:22:34      阅读:4479      评论:0      收藏:0      [ ...

  4. ASP.NET MVC使用jQuery来POST数据至数据库中

    学习ASP.NET MVC程序,结合jQuery客户端代码,Post数据至数据库去.Insus.NET今天写一个完整性的例子. 在数据库中,创建一个表[dbo].[TestUser]: 既然是把数据存 ...

  5. ASP.NET MVC使用jQuery实现Autocomplete

    Insus.NET的以前的ASP.NET MVC的练习中,也有实现过Autocomplete的功能.依次是使用jQuery来实现. 首先在数据库准备一些数据: CREATE TABLE [dbo].[ ...

  6. 【ASP.NET MVC 】让@Ajax.ActionLink获取的数据不进Cache

    刚玩这个东西的时候,发现IE会进Cache,不管怎么删除,修改,后台删除了,前台还是一样,找了一下,HTML5只提供了 <meta http-equiv="pragma" c ...

  7. Asp.net mvc中的Ajax处理

    在Asp.net MVC中的使用Ajax, 可以使用通用的Jquery提供的ajax方法,也可以使用MVC中的AjaxHelper. 这篇文章不对具体如何使用做详细说明,只对于在使用Ajax中的一些需 ...

  8. ASP.NET MVC和jQuery DataTable整合

    本文包含代码示例说明如何jQuery插件开发者可以集成到ASP.NET MVC应用程序. 下载源代码- 87.4 KB Introduction The jQuery DataTables plug- ...

  9. 【翻译】了解ASP.NET MVC中的Ajax助手

    原文:Understanding AJAX Helpers in ASP.NET MVC 作者: Shailendra Chauhan works as Software Analyst at rep ...

随机推荐

  1. 快排 quicksort 快速排序

    首先看这个 http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html 看完后就没有什么不理解的了... PS 注意 凡是在一 ...

  2. 网络上USB后面跟AF或AM接口的意思

    AM to micro 5pin或AF to micro 5pin 这里的AM或AF是Type a male和Type a female的简写 Type a male:A型男士 Type a fema ...

  3. 四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现

    原文:四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现 虽然说现在官方的自带插件已经有很多了,但是有时候往往不能满足我们 ...

  4. Highlight On Mouseover Effect With JQuery

    How to get the xpath by clicking an html element How to get the xpath by clicking an html element Qu ...

  5. Mysql文件太大导入失败解决办法总结

    Mysql文件太大导入失败解决办法总结 在使用phpmyadmin导入数据库的时候可能会碰到由于数据库文件太大而无法导入的问题! 英文提示如下:File exceeds the maximum all ...

  6. 编写可维护的JS 02

    2.注释 单行 //单行注释 多行 /* 多行注释 */ /** * 多行注释 * */ 使用注释 使用注释的原则是让代码更清晰 难于理解的代码 难于理解的代码都应添加注释 可能被误认为错误的代码 应 ...

  7. 读书笔记 SQL 事务理解

    事务的ACID属性 Atomicity 原子性 每个事务作为原子单元工作(即不可以再拆分),也就是说所有数据库变动事务,要么成功要么不成功. SQL Server把每个DML或者 DDL命令都当做一个 ...

  8. JavaScript使用button提交表单

    <form action="test.html" method="POST"> <input type="button" ...

  9. CodeForces 447C DZY Loves Sequences DP

    题目:click here 题意:求给定序列更改其中一个元素后的最长连续上升子序列的长度 分析:最长的连续子序列有2种,一种是严格上升(没有更改元素)的长度加1,一种是两段严格上升的加起来. #inc ...

  10. POJ 2752 Seek the Name, Seek the Fame(求所有既是前缀又是后缀的子串长度)

    题目链接:http://poj.org/problem?id=2752 题意:给你一个字符串,求出所有前缀后缀(既是前缀又是后缀的子串)的长度 思路:首先整个字符串肯定既是前缀又是后缀,为最大的前缀后 ...