ajax传递对象到MVC控制器

1、view层中ajax写法:

function Add2() {
        var model = new Object();
         model.UserName = $(‘#UserName‘).val();
         model.Age = 20;
         model.ID = 1;
          //提交
         $.ajax({
             contentType: "application/json", //必须有,表示提交的数据类型
            type: "post",
             url: ‘ @ViewBag.WebApiUrl/Class/CreateSubmit3/‘,
            cache: false,
             data: JSON.stringify(model),
           // dataType: "json",
            error: function (jqXHR, textStatus, errorThrown) {
                if (jqXHR.status == ‘401‘) {
                    //alert("登录过期,请重新登录");
                }
                else {
                    alert("添加失败");

                }
            },
             success: function (result) {
                // alert(result.ErrMsg);
                 //location.href = ‘@ViewBag.WebApiUrl/home/index‘;
            },
            beforeSend: function (xhr) {
                //xhr.setRequestHeader("Authorization", "Bearer " + $.cookie(‘access_token‘));
            }
        });
    }

2、mvc中控制器的写法。

  public JsonResult CreateSubmit3(MyClass.Models.MyClass model)
        {
            //string aa = UserName;
            return Json(model);
        }

model的写法:

namespace MyClass.Models
{
    public class MyClass
    {
        [Required]
        [Display(Name = "自动编号")]
        public int ID { set; get; }
        [Required]
        [Display(Name = "姓名")]
        public string  UserName { set; get; }
        [Required]
        [Display(Name = "年龄")]
        public int Age  { set; get; }
    }
}

总结:

主要是看http的请求头中的 [contentType],如果ajax里没有指定属性 contentType,则默认为: application/x-www-form-urlencoded;  表示为表单方式。这种的在mvc控制器中就是使用这样的来接值:

   public JsonResult CreateSubmit2(string UserName)
        {
            string aa = UserName;
            return Json("{‘a‘:‘1‘}");
        }

如果,contentType指定为:application/json,则表示向服务器发送一个json串,上面那个例子里,就是发送这样的一个json串:

{"UserName":"99","Age":20,"ID":1}

原文地址:https://www.cnblogs.com/25miao/p/11345761.html

时间: 2024-10-01 21:43:47

ajax传递对象到MVC控制器的相关文章

SpringMVC,SpringBoot使用ajax传递对象集合/数组到后台

假设有一个bean名叫TestPOJO. 1.使用ajax从前台传递一个对象数组/集合到后台. 前台ajax写法: var testPOJO=new Array(); //这里组装testPOJO数组 $.ajax({ url:"testController/testPOJOs", data:JSON.stringify(testPOJO), type:"post", dataType:"json", contentType:"appl

jq ajax传递json对象到服务端及contentType的用法

目录 0.一般情况下,通过键值对的方式将参数传递到服务端 1.ajax 传递复杂json对象到服务端 2.content-Type 对asp.net mvc项目的重要性 0.一般情况下,通过键值对的方式将参数传递到服务端 0.1 客户端代码: $.ajax({ url: 'TestHandler.ashx', type: 'post', data: { name: "admin", age: 10 }, dataType: 'text', success: function (data

.net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二)

.net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二) .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (一) 上一篇主要是以Form键值对提交的数据,转为Json方式处理,有时我们直接以Body字串提交,我们要解决以下两种方式提交的取值问题: JObject $('#btn_add').click(function (e) { var a = $('#tb_departments').bootstrapTable(

springMVC通过ajax传递参数list对象或传递数组对象到后台

springMVC通过ajax传递参数list对象或传递数组对象到后台 环境: 前台传递参数到后台 前台使用ajax 后台使用springMVC 传递的参数是N多个对象 JSON对象和JSON字符串 在SpringMVC环境中,@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象.然而在ajax请求往往传的都是Json对象,用 JSON.stringify(data)的方式就能将对象变成字符串.同时ajax请求的时候也要指定dataType: "json",

ajax传递数组、form表单提交对象数组

在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致,那么传值就没有什么问题.不过,在前几天的开发任务中,遇到了需要批量传递对象,也就是需要传递对象数组,在此做个总结.今天又遇到需要向后台传递数组,便一并写下来吧. 1.ajax传递普通数组 前台代码 var deleteNum= [];//定义要传递的数组 deleteNum.push("1"); deleteNum.push(&qu

MVC传递数据-传递对象或对象集合

前言 本文主要介绍从View(或者js)文件向Controller提交对象或者对象集合,比如,将表格中的一行数据作为一个对象提交,或将多行数据作为一个集合提交到Controller. 回顾 从View(或者js)文件向Controller提交数据,你可能见过以下几种方式: 将提交的数据附在url地址后面 $.ajax({ type: "POST", url: "/InviteBid/UpdateBidZRecord/?JudgeBidId=" + JudgeBidI

spring mvc 控制器方法传数组对象的一些经验

因为项目需要在一个表单里面提交多个对象,比较好的做法就是直接在控制器方法参数里传一个数组. 由于Spring mvc框架在反射生成控制方法的参数对象的时候会调用这个类的getDeclaredConstructor方法来获得构造函数, 但是一直报NoSuchMethodException的异常. 根据这个方法的jdk文档,这个类是一个数组对象时,这个方法会抛出java.lang.NoSuchMethodException,因为接口.数组类.void.基本类型没有构造函数. 同事后来给我支了两招,使

Ajax传递二维数组至后台ThinkPHP控制器

最近为单位做了专家库的小程序,没个专家有擅长的领域,这是通过一个checkbox来提交和编辑的.因为不想刷新页面,使用Ajax异步传输. 首先从专业数据表中读取所有的专业,并且生成checkbox: $(document).ready(function(){ $.ajax({ type:"POST", url:"http://localhost/yibu/index.php/Home/Expertadd/expertecho",//对应控制器读取专业列表 succe

MVVM架构~knockoutjs系列之为Ajax传递Ko数组对象

返回目录 一些要说的 这是一个很有意思的题目,在KO里,有对象和数组对象两种,但这两种对象对外表现都是一个function,如果希望得到他的值,需要进行函数式调用,如ko_a(),它的结果为一个具体值或者数组或者函数,而ko_a则表示一个KO对象. 今天主要说一下如何在ajax方法里向后台传递对象和数组等参数,一般说来,我们为后台传递的是字符串和数字,而如果希望传递对象,则需要使用$.param这个方法,下面具体用代码说一下. 一些要做的 一般后以的代码理想是这样的 public JsonRes