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/":/"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
    }
}

(转载)MVC + JQUERY + AJAX的几种方式的更多相关文章

  1. MVC+jquery+AJAX的几种方式

    // 传过去一个简单值,获取一个简单值 $.ajax({ type: "GET", url: '<%= Url.Action("xx", "Co ...

  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. C++ Combobox输入时自动完成

    Combobox 在输入时自动完成 关键点 实现过程 BOOL m_bAuto; BOOL CProject02Dlg::PreTranslateMessage(MSG* pMsg)  {     i ...

  2. Override ListView getAdapter造成的后果

    近期工作中,发现了一个bug,是和ListView Adapter有关的.产生了FC,描写叙述信息大约是 "The content of the adapter has changed bu ...

  3. linux下启动某个进程

    在关闭窗口的情况下,能够在后台继续运行,如 启动命令 node /home/node_modules/pixel-ping/lib/pixel-ping.js /home/node_modules/p ...

  4. Linux coredump学习笔记

    初学者笔记:linux的程序在发生异常情况下,会导致进程down,多数服务器会设置生成core文件,本人在实际运营过程中发生过进程不断core,被自动监控拉起,过段时间有core的情况,进而导致磁盘被 ...

  5. 图解I/O的五种模型

    1.1 五种I/O模型 1)阻塞I/O 2)非阻塞I/O 3)I/O复用 4)事件(信号)驱动I/O 5)异步I/O 1.2 为什么要发起系统调用? 因为进程想要获取磁盘中的数据,而能和磁盘打交道的只 ...

  6. html和css 基础梳理之一

    原图出处:http://www.cnblogs.com/jiasongmao/archive/2016/08/24/5804298.html

  7. Windows Server 2008安装Memcached笔记

    分布式缓存系统Memcached简介与实践 缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然 ...

  8. 访问权限PPP(public、private、protected、default)之成员变量、成员变量权限解析

    首先,我们需要清楚一下方法是由哪些部分构成的: [权限修饰符列表][别的修饰符列表] 返回值类型 方法名(参数列表){   方法体:} 然后我们需要知道成员变量和成员方法访问有几种情况:1.当前包同一 ...

  9. 关于JQuery 中$.ajax函数利用jsonp实现Ajax跨域请求ASP.NET的WebService成功获取数据的案例

    部署环境:Window 7 SP1+IIS7 成功方案: 其成功解决问题的几个重要因素如下: 1.       由于WebService默认不支持Get请求,所以要在Web.config配置文件内的& ...

  10. C#操作redis代码汇总

    马上要用redis来改造现有的o2o项目了,在linux下部署了个redis,顺便研究了下代码操作,分享下代码 using System; using System.Collections.Gener ...