如何在javascript调用中传递参数?

时间:2012-05-21 09:40:52

标签: c# javascript

我尝试从JavaScript调用c#函数 - 我想将参数与该方法一起传递,但是如何传递参数?

以下是aspx页面中的javascript:

function CallCodeBehind(id) {
    var a = '<%=CallFromJS(--parameter need pass here --)%>';
}

以下方法在代码隐藏

public string CallFromJS(id) {
    int id=id;
    getNames(id);    
    return null;
}

按钮代码是:

<Button ID="Button1" runat="server" OnClientClick="CallCodeBehind(<%=(id)%>)"     Text="Upload" />

1 个答案:

答案 0 :(得分:1)

WebMethods可以有参数,但方法必须是静态的。

服务器端(* .cs代码隐藏):

[WebMethod]
public static string Hello(string name)
{
  return "Hello " + name;
}

然后从这样的javascript中调用它:

<script type="text/javascript">
    function SayHelloToMe(param) {
      PageMethods.Hello(param, OnSuccess, OnError);
    }

    function OnSuccess(response) {
      alert(response);
    }

    function OnError(error) {
      alert(error);  
    }  
</script>

和按钮:

<Button ID="Button1" runat="server" OnClientClick="SayHelloToMe('<%=(id)%>')"     Text="Upload" />

当然id必须是公共的,并且在那个表单上你必须启用带有PageMethods的ScriptManager,如下所示:

<asp:ScriptManager ID="scMan" runat="server" EnablePageMethods="true"></asp:ScriptManager>