0

我在 .cs 页面上有功能

[System.Web.Services.WebMethod]
    public static string getdata()
{
    ProductBAL objbal = new ProductBAL(); // Calling class
    int i = 0;
    i = objbal.get_last_orderid(); //Select query
    i = i + 1;
    ProductDAL objdal = new ProductDAL(); // Calling class
    objdal.insert_new_orderid(i); //Insert query
    HttpCookie orderid = new HttpCookie("orderid");
    orderid.Value = "MP_" + Convert.ToString(i);
    Response.Cookies.Add(orderid);
    Response.Cookies["orderid"].Expires = DateTime.Now.AddHours(5);
    string abc=Convert.ToString(i);
    return abc;
}

我的 HTML 页面代码是

<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>calling function from .cs</title> 
<script language="javascript" type="text/javascript">    
    function Submit1_onclick() {        

        $.ajax({ type: "GET", url: "default.aspx/getdata()", success: function (data) { });

           alert("Done");        
    }
</script>
</head>

<body>
<form name="ecom" method="post" action="https://www.google.co.in/">
<input id="Submit1" type="submit" name="submit" runat="server" value="Submit" onclick="return Submit1_onclick()">
</form>
</body>

我试图在提交点击时将我的网页端功能调用到客户端。我错过了什么吗?请从我上面的代码中给出一个演示

4

5 回答 5

1
function Submit1_onclick() {
        // alert("Hello");
        $.ajax({
            type: "GET",
            url: 'demo.aspx/getdata',
            data: "{}",

            //"{character:'M'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(data) {
                alert(data.d);
                //alert("success");
                alert("This is ajax call:");
            },
            error: function() {
                //alert(Error);
                alert("something went wrong");
            }
        });
       // alert("Done");
    }



[WebMethod()] //U have to declare this method as a web method 
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 
public static string getdata() 
{ 
于 2013-08-27T08:49:33.413 回答
0

在您的网址上尝试:“PageName.aspx/MethodName”。另请查看 Dave Ward 的这篇博文:

使用jQuery直接调用ASP.NET AJAX页面方法

于 2013-08-27T07:17:06.847 回答
0

下面的行很容易出错。不要在 url 方法名称中包含“()”。

$.ajax({ type: "GET", url: "/getdata()", success: function (data) { });

将上面的行替换为

$.ajax({ type: "GET", url: "/getdata", success: function (data) { });
于 2013-08-27T07:20:56.317 回答
0

请参阅以下工作示例

// Code behind method declared static

[WebMethod]
public static string GetSquare(String value)
{
    return "hello" + value;
}

你的按钮,点击它必须完成

<input type="button" id="button" value="Chnageurl" onclick="ajaxcall()" />

为此的脚本

<script type="text/jscript">

function ajaxcall(e) {

        $.ajax({
        type: "POST",
        url: "Default.aspx/GetSquare",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify({ value: "test" }),
        dataType: "json",
        success: function (value) {
        alert(value.d);
    },
   error: function () { alert("Ajax Error"); }
 });
};
于 2013-08-27T08:53:18.110 回答
0

从您的评论中,我收集到您正在通过检查数据库表中的新条目来验证此方法是否有效。数据库中的数据可能由于其他原因而不是查询而丢失。要验证,请尝试更简单的网络方法,然后从那里开始。

例如,

网页:

<input id="submit" type="submit" name="submit" value="Submit" onclick="return submitClick();" />

Javascript:

function submitClick() {
    $.ajax({
        type: "POST",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        url: "default.aspx/getdata",
        success: function (data) {
            console.log(data);
            alert("success" + data);
        },
        error: function () {
            alert("something went wrong");
        }
    });
    return false; // Note: the return false will prevent postback
}

C#

    [System.Web.Services.WebMethod]
    public static string getdata()
    {
        return "Hello World!";
    }

如果您没有看到成功响应,那么问题确实出在您的 javascript 上,或者更确切地说是网站设置以某种方式阻止了来自 javascript 的回调。

如果该方法成功,那么您的数据库插入脚本很可能引发了错误,您应该逐步检查它以查看原因。

于 2013-08-27T09:24:08.217 回答