在我的网站中,我在javascript中声明一个数组并动态插入它们。所以现在,我想从我的C#代码中使用该数组。我不想使用ajax将该元素发送到Web服务...我只想使用C#事件,如OnClick并访问使用javascript构建的数组。
我搜索了一个答案,但我刚找到了对面。 感谢
答案 0 :(得分:1)
最简单的方法是AJAX调用,我不明白为什么要避免这种情况?
点击按钮进行AJAX通话。
例如:将您的数组转换为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”。