将Javascript对象传递给C#

我已经从Web表单中检索了数据,并使用button_click上的Javascript将其放入了对象.然后,我尝试使用Ajax和JSON将对象传递给C#代码中的方法.

Javascript:

$(document).ready(function () {
    $("#go").click(function () {
        $('#<%=gv_Rota.ClientID%>')
            .find('tr')
            .each(function (row) {
                $(this).find('select')
                    .each(function (col) {
                        $ctl = $(this)
                        if ($ctl.is('select')) { 
                            var shift = $ctl.val();
                            var day = row;
                            var wk = col + 1;
                            var objectitem = { ShiftId: shift, Day: day, Week: wk };
                            $.ajax({
                                url: '/Administration.aspx/StoreObject',
                                type: 'POST',
                                contentType: 'application/json',
                                data: JSON.stringify({ myObject: objectitem })
                            });
                        }
                    });
                });
            });
        });

后面的C#:

[WebMethod]
public static void StoreObject(string[] myObject)
{

}

在Javascript中,您可以看到它在GridView周围循环,并从GridView内的DropDownLists中找到selectedvalues.因此,JavaScript将运行多次,这意味着将传递多个对象.

我如何将所有传递给C#的对象保存在DataTable的行中,例如,当我按下“保存”按钮时可以使用这些对象.首先,我不太确定StoreArray方法中的内容,其次,我不确定在按下按键后保存数据表的最佳方法(例如,如果这就是我存储对象的内容)的最佳方法. “保存”按钮和“发回”,因为我确定会因此而被重置?

解决方法:

用C#创建一个类,以反映您的JavaScript中具有的对象

像这样:

public class Item
    {
        public string Id { get; set; }
        public string Day { get; set; }
        public string Week { get; set; }
    }

然后期待您输入

[WebMethod]
public static void StoreObject(Item myObject)
{

}

编辑:

如果要将项目保存到集合中,可以列出以下项目:

 private List<Item> myList = new List<Item>();

[WebMethod]
public void StoreObject(Item myObject)
{
    myList.Add(myObject);
}

注意:这不能一成不变.我不确定WebMethods是否支持静态方法.如果不是,则需要制作一个asmx页面来托管方法See here

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...