-1

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

下面是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" />
4

1 回答 1

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 必须是公开的,并且在该表单上,您必须启用 ScriptManager 并启用 PageMethods,如下所示:

<asp:ScriptManager ID="scMan" runat="server" EnablePageMethods="true"></asp:ScriptManager>
于 2012-05-21T09:49:14.680 回答