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
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值