最近,新学c# mvc,通过ajax post方式传递数据到controller。刚开始传递参数,controller中总是为null。现记录一下,可能不全,纯粹记个学习日记。

重点在于参数的方式,代码为例子

1、这里  dataType: "json",表示返回的格式是json

前端:  var saveAlbum = function () {$.ajax({url: "/Home/PostAlbum",type: "POST",dataType: "json",data: { AlbumName: "shanghai", Entered: "5/9/2013" },success: function (result) {alert(result);},error: function (xhr, status, p3, p4) {var err = "Error " + " " + status + " " + p3;if (xhr.responseText && xhr.responseText[0] == "{")err = JSON.parse(xhr.responseText).message;alert(err);}});}

 controller: 

public ActionResult PostAlbum(test test){string str = String.Format("保存成功PostAlbum:{0} {1:d}", test.AlbumName, test.Entered);return Json(str);//--------对应请求中dataType: "json",表示需要返回json类型//return String.Format("保存成功PostAlbum:{0} {1:d}", test.AlbumName, test.Entered);//------如果是string,则会报错}

2、ajax请求中还要一个重要的参数: contentType: "application/json",表示传入参数的格式

 var saveAlbumJson = function () {$.ajax({url: "/Home/PostAlbum",type: "POST",contentType: "application/json",dataType:"json",data: JSON.stringify({ "AlbumName": "shanghai", "Entered": "5/9/2013" }),success: function (result) {alert(result);},error: function (xhr, status, p3, p4) {var err = "Error " + " " + status + " " + p3;if (xhr.responseText && xhr.responseText[0] == "{")err = JSON.parse(xhr.responseText).message;alert(err);}});}

 [HttpPost]public ActionResult PostAlbum(test test){string str = String.Format("保存成功PostAlbum:{0} {1:d}", test.AlbumName, test.Entered);//传入test实体return Json(str);//return String.Format("保存成功PostAlbum:{0} {1:d}", test.AlbumName, test.Entered);}

 public class test{public string AlbumName { get; set; }public DateTime Entered { get; set; }}

3、如果要传入list<实体>,比如List<test>,需要把传入的data做转换

   var saveAlbumJsonList = function () {$.ajax({url: "/Home/AlbumList",type: "POST",contentType: "application/json",dataType: "json",data: JSON.stringify({"input":[{ AlbumName: "shanghai", Entered: "5/9/2013" },{...},{....}]}),success: function (result) {alert(result);},error: function (xhr, status, p3, p4) {var err = "Error " + " " + status + " " + p3;if (xhr.responseText && xhr.responseText[0] == "{")err = JSON.parse(xhr.responseText).message;alert(err);}});}

  public ActionResult PostAlbumList(List<test> input)//input必须要与data中数组中的key匹配{if (input != null){string str = String.Format("保存成功PostAlbum:{0} {1:d}", input[0].AlbumName, input[0].Entered);return Json(str);}else{return Json("参数获取错误!");}//return String.Format("保存成功PostAlbum:{0} {1:d}", test.AlbumName, test.Entered);}

4、由上面三个例子,很容易想到,传入多个list<实体>的方式

  function postEmployees() {$.ajax({type: "POST",url: "/Home/Employees",contentType: "application/json",dataType: "json",async: false,data: JSON.stringify({"Employees": [{ "Id": "1", "lastName": "Gates" }, { "Id": "2", "lastName": "Bush" }, { "Id": "3", "lastName": "Carter" }],"Employers": [{ "Id": "4", "lastName": "Gates" }, { "Id": "5", "lastName": "Bush" }, { "Id": "6", "lastName": "Carter" }]}),success: function (jsonResult) {alert(jsonResult);}});}

  [HttpPost]public async Task<ActionResult> Employees(List<Employee> Employees, List<Employee> Employers){return Json("Employees", JsonRequestBehavior.AllowGet);}

 public class Employee{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }}

转载于:https://www.cnblogs.com/starksoft/p/9505803.html

JQuery.Ajax()的data参数传递方式相关推荐

  1. JQuery.Ajax()的data参数类型

    JQuery.Ajax()的data参数类型 2017年9月14日:补充JQuery.Ajax()的数据类型 本文以前提到的三种类型,这三种参数本质上都是变成了类似"uname=alice& ...

  2. ajax的data参数类型,JQuery.Ajax()的data参数类型

    假如现在有这样一个表单,是添加元素用的. 用户名: 手机号: 生日: 我们不想使用表单submit的方式添加这个元素,我们就想使用ajax提交. 以前我们是这样实现的: 1 2 3 4 5 6 7 8 ...

  3. 关于Jquery中ajax方法data参数用法的总结

    关于Jquery中ajax方法data参数用法的总结 jquery手册描述: 示例: $.ajax({type: "POST",url: "some.php", ...

  4. ajax webservice 参数类型,JQuery Ajax WebService传递参数的简单实例

    Asp.NET中利用jQuery实现Ajax时,在服务器端可以使用aspx,ashx,以及WebService等方式.最近研究了一下WebService方式,jQuery Ajax 方法调用 jQue ...

  5. jquery ajax传递data,基于jquery ajax中的data传递参数与后台工作的流程

    基于jquery ajax中的data传递参数与后台工作的流程 2014-11-12    分类: php学习,前端资源,学习jquery基础 首先列出实例代码 js代码: $('button').c ...

  6. ajax传formdata类型的数据_JQuery.Ajax()的data参数类型

    假如现在有这样一个表单,是添加元素用的. 用户名: 手机号: 生日: 我们不想使用表单submit的方式添加这个元素,我们就想使用ajax提交. 以前我们是这样实现的: 1 2 3 4 5 6 7 8 ...

  7. jQuery ajax的traditional参数的作用

    一般的,可能有些人在一个参数有多个值的情况下,可能以某个字符分隔的形式传递,比如页面上有多个checkbox: $.ajax{url:"xxxx",data:{p: "1 ...

  8. 关于Jquery中ajax方法data参数用法

    data 发送到服务器的数据.将自动转换为请求字符串格式.GET 请求中将附加在 URL 后.查看 processData 选项说明以禁止此自动转换.必须为 Key/Value 格式.如果为数组,jQ ...

  9. java ajax data_jquery ajax 方法中传递的data参数,如何在java类中获取

    展开全部 var params="username="+"1"; $.ajax({ type : "POST", //数据发送方式 url ...

最新文章

  1. TCP/IP学习笔记(九)TCP报文段首部格式
  2. JEPaas代码_((列表)输入字段值而计算
  3. junit:junit_简而言之,JUnit:测试隔离
  4. Linux 视频设备驱动V4L2最常用的控制命令使用说明(1.02)
  5. CSS3学习笔记之loading动画
  6. Linux开机自动启动ORACLE设置
  7. js-Tabs小案例
  8. Spring动态代理实现
  9. 人声歌姬语音合成器+拓展-Yamaha Vocaloid 5.0.3 + Libraries WiN 免安装版
  10. 枚举所有IE窗口,实现自动登录
  11. 数据库并发抢红包_微信高并发抢红包秒杀实战案例
  12. php excel水印图片大小,PHPExcel:如何在第一页标题中插入图像并将其放大以适合其内容?...
  13. 电厂3D可视化_输变电站三维扫描建模
  14. 【数据结构】带你细致理解十大排序(附源码)
  15. 支持多商家在线客服系统源码
  16. SPSS_Logistic回归分析结果表中的英文字母意思
  17. 求助vs2015里面我将输出视图设置为自动隐藏然后
  18. 获取所有部门中员工薪水最高的相关信息
  19. Java工具类 —— Java POI 4.X 的Excel基本操作
  20. 网页音效简易解决方案audiosprite

热门文章

  1. UA SIE545 优化理论基础0 优化建模6 罐头的尺寸设计
  2. 初步了解Windows应用程序内存结构 - 使用VMMAP工具
  3. EasyUI datagrid控件的基本使用
  4. 80x86汇编按二进制输出数字的程序图解和代码解释
  5. DataSnap 2009 系列之二 (方法篇)
  6. 正在或即将被使用的Go依赖包管理方法:Go Modules,Go 1.13的标准特性
  7. Python2与Python3的区别:
  8. 笔记:常用SQL语句
  9. Python闭包与延迟绑定
  10. centos 上 crontab 计划任务 ,这个版本解释的比较清晰