繁体   English   中英

将Javascript对象传递给C#

[英]Passing Javascript objects to C#

我从我的网络表单中检索了数据,然后使用Javascript on button_click将其放入对象中。 然后我尝试使用AjaxJSON将对象传递给我的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将多次运行,这意味着将传递多个objectd。

例如,如何在DataTable的行中保存传递给C#的所有这些对象,然后可以在按下“保存”按钮时使用。 首先,我不太确定StoreArray方法中的内容,其次,我不确定保持DataTable的最佳方法是什么(如果这是我存储对象的内容),在我按下之后“保存”按钮和PostBack ,因为我确定它会因此重置?

在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页面来托管该方法请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM