从javascript函数调用asp.net函数

时间:2014-07-01 12:06:16

标签: c# javascript jquery asp.net

我想从传递字符串值的javascript函数调用asp.net函数。

这是asp.net函数:

[System.Web.Services.WebMethod]     
public static string InsertData(string ID)
{
    string source = "Data Source=(LocalDB)\v11.0;Integrated Security=True;Connect Timeout=30";
    using(SqlConnection con = new SqlConnection(source))
    {
        using (SqlCommand cmd = new SqlCommand("Insert into Book (Name) values(@Name)", con))       {
            con.Open();
            cmd.Parameters.AddWithValue("@Name", ID);
            cmd.ExecuteNonQuery();
            return "True";
        }
    }
}

所以我想从javascript函数调用这个函数,它传递字符串值" ID"到asp.net函数。

这是我使用的javascript函数

 function CallMethod() {
            PageMethods.InsertData("hello", CallSuccess, CallError);

        }

        function CallSuccess(res) {
            alert(res);
        }

        function CallError() {
            alert('Errorrr');
        }

我从这里叫它

<body>
        <header>        
        </header>       
        <div class="table"  id="div1" > </div>                      
        <form id="Form1" runat="server">
            <asp:Button id="b1" Text="Submit" runat="server" onclientclick="CallMethod();return false;"/>
            <asp:ScriptManager enablepagemethods="true" id="ScriptManager1" runat="server"></asp:ScriptManager>
        </form> 

    </body>

所以我有一个按钮和onClick我想添加&#34;你好&#34;排到我的表但没有任何反应,CallError函数调用

3 个答案:

答案 0 :(得分:1)

您可以在javascript中通过 ajax调用调用web方法。您需要将 url参数值设置为要调用的函数,并且可以在json formate中的数据参数中传递值。 像这样data:"{ParamterName:'VALUE'}

 <script type="text/javascript">
        $(document).ready(function () {
            $.ajax({
                type: "POST",
                url: "YourPage.aspx/YouPageMethod",
                data: "",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (result) {
                    alert('Method Called Sucess fully');
                },
                error: function (result) {
                    alert("error " + result);
                }
            });
        });
    </script>

OR

您可以使用 PageMethod Eample

进行通话
 <script type="text/javascript">
        function callInsert() {
            PageMethods.InsertDate(id, OnSucceeded, OnFailed);
        }

        function OnSucceeded(response) {
            alert(response);
        }
        function OnFailed(error) {
            alert(error);
        }   


  /* call this javascript function */    
    callInsert();

</script>

答案 1 :(得分:0)

您需要先在页面中包含Jquery。然后,您需要添加以下Javascript代码。

 <script type="text/javascript">
  var id ="5";  //your id will be stored here
    $(document).ready(function () {
        $.ajax({
            type: "POST",
            url: "YourPage.aspx/InsertData"  + "&?id="  ,
            data: "",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (result) {
                alert('Success');
            },
            error: function (xhr, request, status) {
                 alert(xhr.responseText);
            }
        });
    });
</script>

答案 2 :(得分:0)

您需要在.aspx页面中使用scriptManager

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

之后,您可以使用

调用该方法
    <script type="text/javascript">
    function func(){
    PageMethods.InsertData(id,success_msg,failure_msg);
    }
    </script>