我昨晚花了很多时间试图解决这个问题。
基本上在Google地图中,我可以在客户端Javascript中选择的两个点之间生成路线或路标。
我理想地希望能够将这些存储在我的数据库中(我使用C#.NET和SQL Server DB),将它们传递给服务器端C#方法。
我已经到了可以通过使用:
将我需要的指示放入字符串的地步*var string = JSON.stringify(response);*
现在,这就是我被困住的地方。
如何将此传递给C#webforms方法?
我已经看到了我的问题的MVC C#解决方案:
var str = JSON.stringify(data)
var city = {};
city.Directions = str;
$.ajax({
type: 'POST',
url: 'usertrip.aspx/GetDirections',
data: str ,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (r) {
alert(r.d.Directions);;
}
});
但我已经测试过,并得出结论认为这对webforms不起作用。有谁知道如何更改此代码,以便我可以将字符串传递给Webforms方法而不是MVC?
谢谢!
答案 0 :(得分:4)
你绝对可以用webforms做这种事情。重要的是,您需要设置一个Web服务,公开可以被ajax调用命中的方法。这篇名为Using jQuery to directly call ASP.NET AJAX page methods的精彩文章对我来说非常有用,可以弄清楚如何完成你想要做的事情。
例如(来自文章)做这样的事情:
public partial class _Default : Page
{
[WebMethod]
public static string DoSomething(string myJsonData)
{
// deserialize your JSON
// do something cool with it
}
}
允许您使用AJAX调用点击web方法。我可以向你保证,我已经在许多不同的asp.net解决方案中完成了这项工作,不使用MVC,所以稍微修补一下你应该能够获得你所需要的信息。
答案 1 :(得分:2)
您需要执行以下操作:
var str = JSON.stringify(data)
var city = {};
city.Directions = str;
$.ajax({
type: 'POST',
url: 'usertrip.aspx/GetDirections',
data: { city: str },
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (r) {
alert(r.d.Directions);;
}
});
在Webforms代码背后:
City city = new JavaScriptSerializer().Deserialize<City>(Request.Form["city"]);