ajax传递对象到MVC控制器

Posted 25miao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于ajax传递对象到MVC控制器的主要内容,如果未能解决你的问题,请参考以下文章

Ajax 将空对象发布到 mvc 控制器

使用 jQuery Ajax 将对象列表传递给 MVC 控制器方法

如何将多个参数从 ajax 调用传递到 MVC 控制器

将ajax中的复杂对象发送到MVC

如何将图像文件和表单数据从 Ajax 传递到 MVC 控制器

将多个参数从 ajax post 传递到 asp.net mvc 控制器