将一个数组从javascript传递给C#后面的代码

本文关键字:代码 javascript 一个 数组 | 更新日期: 2024-10-18 23:13:52

在我的网站上,我用javascript声明了一个数组,并动态地插入它们的元素。现在,我想从我的C#代码中使用这个数组。我不想使用ajax将该元素发送到web服务。。。我只想使用C#事件,比如OnClick,并访问用javascript构建的数组。

我找了个答案,但我找到了opsite。感谢

将一个数组从javascript传递给C#后面的代码

最简单的方法是AJAX调用,我不明白为什么要避免这种调用?

点击按钮进行AJAX调用。

看看这里的演示:Ajax调用没有调用服务器端,并且在httpfox中将错误显示为";加载内容时出错(NS_Error_DOCUMENT_NOT_CACHED)";在ajax后调用

例如:将数组转换为json字符串,并在c代码中调用web客户端。给我一个按钮。点击按钮,我想把我的GRIDWIEW数据发送到c#方法(web方法)。

您需要记住,在使用CCD_ 1方法发送json数据时,在服务器端,我们需要将参数定义为对象。而不是任何其他格式,如string/int/bla-bla。。。。。使用Scripts/jquery-1.8.3.min.jshttp://code.jquery.com/ui/1.10.3/jquery-ui.js

 $('#btnResult').on('click', function () {
        var mydata = [];
        $("#<%=GridProjectDetails.ClientID %>  tr").each(function () {
            var myObject = new Object();
            var id = $(this).find("input[name*='ID']").val();
            var locationcode = $(this).find("input[name*='TextLocationCode']").val();
            var Location = $(this).find("input[name*='TextLocation']").val();
            myObject.id = id;
            myObject.locationcode = locationcode;
            myObject.Location = Location;
            mydata.push(myObject);
        });
        var myString = JSON.stringify({ details: JSON.stringify(mydata) });
        alert(myString);
        var exportdata = myString;
        $.ajax({
            type: "POST",
            url: "Default.aspx/ExportToExcel",
            data: exportdata,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                $("#Result").text(data.d);
            },
            error: function () { alert(arguments[2]); }
        });
    });
});

服务器端方法应为

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string ExportToExcel(object details)
{
     return "Message : Success";
}

这是一件有点奇怪的事情,但如果必须这样做,你可以通过创建一个表单来完成,在表单内部有一个隐藏的文本字段,并在提交时调用一个函数来更新该字段的值。

标记:

<form id="yourForm" method="post" >
    <input type="text" name="hiddenFieldName" id="hiddenFieldName" hidden="hidden" />
</form>

javascript:

void yourProcedure() {
    var yourArray = ["Value1", "Value2", "Value3", "Value4"];
    document.getElementById('hiddenFieldName').value = yourArray.join();
    document.getElementById("yourForm").submit();
}

然后在服务器中,表单变量将包含"Value1、Value2、Value3、Value4"。