3

私はこれを理解しようとして昨夜を過ごしました。

基本的に、Google マップでは、ユーザーがクライアント側の Javascript で選択した 2 点間の方向 (ウェイポイント) を生成できます。

理想的には、これらをサーバー側の C# メソッドに渡すことで、データベース (C#.NET と SQL Server DB を使用しています) にこれらを格納できるようにしたいと考えています。

次を使用して、必要な方向を文字列に入れることができるようになりました。

*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);;
                }
        });

しかし、私がテストした結果、これは Web フォームでは機能しないという結論に達しました。MVC ではなく Webforms メソッドに文字列を渡すことができるように、このコードを変更する方法を知っている人はいますか?

ありがとう!

4

2 に答える 2

4

この種のことは間違いなく Web フォームで行うことができます。重要なことは、ajax 呼び出しでヒットできるメソッドを公開する Web サービスをセットアップする必要があるということです。「 jQuery を使用して ASP.NET AJAX ページ メソッドを直接呼び出す」というこの素晴らしい記事は、あなたがやろうとしていることを達成する方法を理解するのに非常に役立ちました。

(記事からの)例として、次のようなことを行います:

public partial class _Default : Page 
{
  [WebMethod]
  public static string DoSomething(string myJsonData)
  {
    // deserialize your JSON
    // do something cool with it
  }
}

AJAX 呼び出しで webmethod をヒットできるようになります。MVC を使用しない多くの異なる asp.net ソリューションでこれを行ったことを保証できます。

于 2012-12-04T14:05:12.587 に答える
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"]);
于 2012-12-04T14:04:09.723 に答える