将一个数组从javascript传递给C#后面的代码
本文关键字:代码 javascript 一个 数组 | 更新日期: 2024-10-18 23:13:52
在我的网站上,我用javascript声明了一个数组,并动态地插入它们的元素。现在,我想从我的C#代码中使用这个数组。我不想使用ajax将该元素发送到web服务。。。我只想使用C#事件,比如OnClick,并访问用javascript构建的数组。
我找了个答案,但我找到了opsite。感谢
最简单的方法是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.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";
}
这是一件有点奇怪的事情,但如果必须这样做,你可以通过创建一个表单来完成,在表单内部有一个隐藏的文本字段,并在提交时调用一个函数来更新该字段的值。
标记:
<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"。