[英]Passing an array from javascript to code behind - C#
在我的网站上,我用javascript声明了一个数组,并动态地将它们插入元素。 所以现在,我想从我的C#代码中使用该数组。 我不想使用ajax将该元素发送到Web服务...我只想使用C#事件(例如OnClick)并访问在javascript中构建的数组。
我搜索了一个答案,但我找到了对面。 谢谢
最简单的方法是AJAX通话,我不明白您为什么要避免这种情况?
通过单击按钮进行AJAX呼叫。
看这里的演示: Ajax调用未调用服务器端,并且在httpfox中显示错误为ajax发布调用中的“错误加载内容(NS_ERROR_DOCUMENT_NOT_CACHED)”
例如:将数组隐式转换为json字符串,然后使用c#代码调用Web客户端。 这里我有一个按钮。 在按钮上单击我想将我的GRIDVIEW数据发送到c#方法(网络方法)。
您需要记住,在使用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";
}
这样做有点奇怪,但是如果必须这样做,可以通过创建一个表单来完成,表单内部有一个隐藏的文本字段,并在提交时调用一个函数来更新该字段的值。
标记:
<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”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.