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

时间:2013-12-17 17:47:54

标签: c# javascript asp.net

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

我搜索了一个答案,但我刚找到了对面。 感谢

2 个答案:

答案 0 :(得分:1)

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

点击按钮进行AJAX通话。

在这看一个演示: Ajax call is not calling to the server side and in httpfox shows error as "Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED)" in ajax post call

例如:将您的数组转换为json字符串并在您的c#代码中调用Web客户端。我有一个按钮。按钮单击我想将我的GRIDVIEW数据发送到c#方法(Web方法)。

你需要记住,使用stringfy()方法发送json数据时, 在服务器端,我们需要将参数定义为对象。 不是像string / int / bla bla那样的任何其他格式..... 使用Scripts/jquery-1.8.3.min.js         http://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";
}

答案 1 :(得分:0)

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

标记:

<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”。