【问题标题】:how to pass data using jquery ajax如何使用 jquery ajax 传递数据
【发布时间】:2015-02-23 02:40:58
【问题描述】:

我正在使用ASP.NET Webforms,并且我有以下函数,它返回多个latlon 值:

directionsService.route(request, function (response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
        if (response.routes && response.routes.length > 0) {
            var routes = response.routes;
            for (var j = 0; j < routes.length; j++) {
                var points = routes[j].overview_path;
                var ul = document.getElementById("vertex");
                for (var i = 0; i < points.length; i++) {
                    var li = document.createElement('li');
                    li.innerHTML = getLiText(points[i]);
                    ul.appendChild(li);
                }
            }
        }
    }
});

function getLiText(point) {

    var lat = point.lat(),
        lng = point.lng();

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "Default.aspx/gpsdata",
        data: { 'lat': point.lat() },
        dataType: "json",
        success: function (data) {
            // response(data.d);
            alert(point);
        },
        error: function (result) {
            alert("Error");
        }
    });
    return "lat: " + lat + " lng: " + lng;
}

<div id="vertex-container">
    <label>Points</label>
    <ul id="vertex">
    </ul>
</div>

所以它不会给我如下输出:

现在我想将这些所有数据发送到 c# 方法。为此,我添加了以下方法:

[WebMethod]
public static string gpsdata(string lat)
{
    List<string> result = new List<string>();
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString = System.Configuration.ConfigurationManager.AppSettings["keyConn"].ToString();

    using (SqlCommand cmd = new SqlCommand("Insert into latdata values(username)", conn))
    {
       //my code
    }
}

但它不起作用..

javascript ajax 方法中,它不会将任何值传递给 c# web 方法,我无法将所有值插入到我的数据库中。

那么我该怎么做呢?

【问题讨论】:

    标签: javascript c# jquery asp.net ajax


    【解决方案1】:

    我注意到您的网络方法中有一个错误

    public static string gpsdata(string lat) 
    

    应该是

    public static string gpsdata(string lat, string lng)
    
    //jQuery
    var geoLoc = { 
        lat: point.lat(),
        lng: point.lat()
    }
    var parameter = JSON.stringify(geoLoc); 
    
    $.ajax({
        type: "POST",
        url: "Default.aspx/gpsdata",
        data: parameter,
        dataType: "json",
        contentType: "application/json",
        async: true,
        beforeSend: function () { },
        success: function (response, status, xhr) {
            debugger;
        },
        error: function (xhr, status, error) {
            debugger;
        }
    });
    

    【讨论】:

    • 嗯,我应该是具体的大声笑试试这个网址:“Default.aspx/gpsdata”,
    • @Tolga 什么是正确的格式化方式?我正在使用 4 个空格。
    • 4 个空格就可以了。随它去吧;)
    【解决方案2】:

    试试这个:-

     data: JSON.stringify({ 'lat': point.lat() })
    

    在传递您的 json 数据时使用 JSON.Stringfy 函数。

    【讨论】:

    • 您是否在代码隐藏文件中放置了断点?它应该命中服务器方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2012-06-12
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多