如何使用JS参数传递ASP.NET服务器端标记

时间:2010-12-12 08:38:29

标签: c# javascript asp.net

我在JS中有一个循环,我想将该循环中的每个参数传递给代码隐藏中的ASP.NET中的函数。

类似的东西:

for (var i = 0; i < elements.length; i++)
    {                    

    }

我想在&lt; %%&gt;中传递一个函数元素[i]。

我该怎么做?

谢谢!

2 个答案:

答案 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());
}