jquery 如何使用 AJAX 调用将对象传递给控制器

6rvt4ljy  于 2023-03-01  发布在  jQuery
关注(0)|答案(5)|浏览(189)

我想把一个对象传递给控制器,并从控制器中获取值,我定义了如下的函数:
HTML代码:

var positionarray = [];

Javascript:

$("#button").live('click',function(){
     positionarray.push({
         id: sessionStorage.getItem('id'),
         value: $("#input").val() 
     });
 });

 // on save button click
 $.ajax({
       type: "GET",                                                 
       url:"/Bugs/Position",                                                 
       data: {
           array:positionarray      
       },
       cache: false,
       dataType: "json",
       contentType: "application/json; charset=utf-8",
       success: function (json) {

       }
 });

但是我无法检索控制器中的值。它正在变空。

kx1ctssn

kx1ctssn1#

尝试这个:-你正在传递一个对象数组,所以你应该使用HTTPPost而不是HttpGet(这将适用于基元类型的数组,比如int,strgin等的列表)通过查询字符串发送它(记住查询字符串的限制)。

$.ajax({
       type: "POST",                     
       url:"Home/Position",                                                 
       data: JSON.stringify({
              array: positionarray
       }),
       cache: false,
       dataType: "json",
       contentType: "application/json; charset=utf-8",
       success: function (json) {

       }

[HTTPPost]
public void Position(YourClass[] array){...
4xrmg8kj

4xrmg8kj2#

试试这个:

$.ajax({
       type: "GET",                                                 
       url:"/Bugs/Position",                                                 
       data: 'array='+positionarray      
       cache: false,
       dataType: "json",
       contentType: "application/json; charset=utf-8",
       success: function (json) {

       }
});
chhkpiq4

chhkpiq43#

试试这个:
您的ajax call必须处于按钮单击功能中,然后它才能工作,
在您的代码中,ajax call在您单击之前运行,因此它会将null传递给您的控制器

$("#button").live('click',function(){
     positionarray.push({
         id: sessionStorage.getItem('id'),
         value: $("#input").val() 
     });

    // on save button click
    // this code must run after `button click` and after pushing data in
    // positionarray variable
    $.ajax({
           type: "GET",                                                 
           url:"/Bugs/Position",                                                 
           data: {
               array:positionarray      
           },
           cache: false,
           dataType: "json",
           contentType: "application/json; charset=utf-8",
           success: function (json) {

           }
    });// here ajax function code ends

});// here button click function ends
ct2axkht

ct2axkht4#

    • 我的示例:**
// Class
    namespace Bookstore.ViewModels {
        public class ShoppingViewModel {
            public int id { get; set; }
            public int quentity { get; set; }
        }
    }
/// Shopping Cart
$(function () {
    $(".Quantity").on("click", function () {
        debugger
        var model = {};
        model.id = parseInt($(this).val());
        model.quentity = parseInt($(this).next().val());
        $.ajax({
            type: "POST",
            url: "/Cart/ModifiedCart",
            data:model,
            success: function (result) {
                console.log(result);
            }
        });

    });
});
[HttpPost]
        public JsonResult ModifiedCart(ShoppingViewModel model)
        {
            return Json(model);
        }
ogsagwnx

ogsagwnx5#

只需添加传统的:真正的 AJAX 功能!!!!

相关问题