我在JS中有一个循环,我想将该循环中的每个参数传递给代码隐藏中的ASP.NET中的函数。
类似的东西:
for (var i = 0; i < elements.length; i++)
{
}
我想在&lt; %%&gt;中传递一个函数元素[i]。
我该怎么做?
谢谢!
答案 0 :(得分:2)
这并不容易,唯一的方法是发帖并发送变量。
我通常做的是让一个处理程序为我做这个工作并使用jQuery我得到一个很好的效果......
来自您的javascript代码
var r = '';
for (var i = 0; i < elements.length; i++)
r += elements[i] + ',';
// send this asynchronously to the handler
$.get("myHandler.asmx", { values: r }, function(data) {
// it finished processing, let use the passed data
alert(data);
});
你的处理程序中的
public void ProcessRequest(HttpContext context)
{
string r = context.Request["values"];
// process them
context.Response.ContentType = "text/plain";
context.Response.Write("OK");
}
“OK”将传递给data
变量,您可以将用户与更丰富的环境进行互动。
答案 1 :(得分:0)
如果您的意思是想从客户端调用服务器端方法,那么使用基于页面的Web服务有一种更简单的方法:
在你的代码后面添加一个方法如下:
[WebMethod]
public static void MyMethod (string s)
{
}
必须在页面的脚本管理器中使用EnablePageMethods = true,即
<asp:ScriptManager runat="server" ID="ScriptManager1" EnablePageMethods="true">
然后在您的客户端代码中,您可以使用:
PageMethods.MyMethod (s, MyMethodSuccess, MyMethodFail);
function MyMethodSuccess() { }
function MyMethodFail(error) {
alert(error.get_message());
}