将jquery中的对象数据发布到控制器

时间:2015-09-16 10:42:31

标签: jquery vb.net

  1. 我尝试了运行视图,我在jquery中有数据

  2. 数据就像=

  3.   

    columnName:“blaName”,columnValue:“blaValue”columnName:“blaName”   ,
             columnValue:“blaValue”columnName:“blaName”,columnValue:“blaValue”

    但是数据没有成为控制器,实际上可能是数据我在控制器中看到data.lenght(** columnValue为List(Of columnGrid)

    但数据为空

    我的观点:

    <script type="text/javascript">
        $('body').on('keyup', '.search', function (event) {
                if (event.keyCode == 13) {
    
                    var data = [];
                    $('.search').each(function ()
                    {
                        data.push({ columnName: $(this).attr('id'), columnValue: $(this).val()});
                    });
                    $.ajax({
                        url: '/Home/PartialGrid',
                        data: JSON.stringify(data),
                        cache: false,
                        type: "POST",
                        contentType: "application/json",
                        dataType: "html",
                        success: function (data) {
                            $(this).enabled = false;
                            $("#olur").html(data);
    
                        }
                    });
                }
            });
        </script>
    

    我的控制器:

     Public Class columnGrid
    
            Public columnName As String
            Public columnValue As String
        End Class
        Function PartialGrid(columnValue As List(Of columnGrid)) As ActionResult
    ............
            Return PartialView(data)
        End Function
    

3 个答案:

答案 0 :(得分:0)

您需要像这样定义一个根对象: -

var data = [];
$('.search').each(function ()
{
    data.push({ columnName: $(this).attr('id'), columnValue: $(this).val()});
});
var dataTosend = { columnValue : data };

请注意我在这里定义了columnValue作为json对象的键,因为在服务器端你定义了相同的变量。它应该匹配。

最后将它传递给jquery ajax方法,如下所示: -

data: JSON.stringify(dataTosend ),

答案 1 :(得分:0)

试试这个:

     $.ajax({
                        url: '/Home/PartialGrid',
                        data: JSON.stringify(data),
                        cache: false,
                        type: "POST",
                        contentType: "application/json",
                        dataType: "html",
                        success: function (data) {
                            $(this).enabled = false;
                            $("#olur").html(data);

                        }
                    });




 Public Class columnGrid

            Public columnName As String
            Public columnValue As String
        End Class
        Function PartialGrid(data) As ActionResult
    ............// deserialize  your data here
            Return PartialView(data)
        End Function

因为ajax post变量和它相关的方法参数必须相同。

答案 2 :(得分:0)

我更新了类代码.Problem只是(get set)方法 感谢所有回复朋友的人。

我添加

脚本代码  data = JSON.stringify({'columns':data});

  Public Class columnGrid

        Private _columnName As String
        Private _columnValue As String

        Public Property ColumnName As String
            Get
                Return _columnName
            End Get
            Set(value As String)
                _columnName = value
            End Set
        End Property

        Public Property ColumnValue As String
            Get
                Return _columnValue
            End Get
            Set(value As String)
                _columnValue = value
            End Set
        End Property
    End Class