0

私のASP.NETWebサイトは、http: //smth.com/player/1234のようなURLを、パラメーターid=1234の「プレーヤー」ページへの要求に変換します。

このページで、このページの「GetData」メソッドにWebリクエストを行う必要があります。jQueryを使用してリクエストを実行したいと思います。私が見つけたすべてのチュートリアル(たとえば、 http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/)は、の「url」パラメーターでURL/メソッド名を渡すことを提案しています。 '$ .ajax'

$.ajax({
  type: "POST",
  url: "PageName.aspx/MethodName", // in my case that will be ... what?
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    // Do something interesting here.
  }
});

問題は、「player / 1234 / GetData」を指定すると、「player」ページに対して要求が行われるのに、ASP.NETがGetDataメソッドを呼び出さないことです...

このページにカスタムロジックを実装し、Webリクエストを実行するために「GetData」を呼び出す必要がありますか?はいの場合、WebMethodに対してリクエストが行われたことをどのように識別できますか?

または、 http://smth.com/player.aspx? Id = 1234/GetDataのような方法で「プレーン」URLを提供する必要があります

私はおそらく何かが恋しいですか?jqueryでは、別のフィールドに「メソッド名」を指定できますか?または、それを適切に処理するようにWebサイトを構成する必要がありますか?

お知らせ下さい。どんなアイデアでも大歓迎です!

4

2 に答える 2

1

ブッダ、同じ問題を抱えているときにあなたの質問を見ました。

私の解決策は、おそらく最善ではありませんが、私の場合は「jq」のように、偽の拡張機能を呼び出しに追加することでした。

url: "<%: ResolveUrl("~/PagePath/PageName.aspx") %>/WebMethod.jq"

拡張子を削除するルールと、URLの末尾にスラッシュを追加するルールがあるため、を使用する必要があります <%: ResolveUrl("~/PagePath/PageName.aspx") %>。これは、ページに入るとURLがhttp://hostname/PagePath/PageName/であり、ajaxを介してWebMethodを呼び出すと、URLがのようになるためhttp://hostname/PagePath/PageName/PageName.aspx/WebMethod.jqです。

この偽の拡張機能を追加した後、最終的な実行の前にそれを削除するために、新しい書き換えルールを追加する必要があります。

<rule name="Clean Page WebMethods">
   <match url="(.*)\.jq$" />
   <action type="Rewrite" url="{R:1}" redirectType="Permanent" />
</rule>

他のルールがある場合は、条件付きでスキップする必要があります。たとえば、拡張機能を削除するためにルールを使用する場合は、ルールの条件に次のようなものを追加する必要があります。

<add input="{R:2}" negate="true" pattern="\.jq" />

拡張子が見つかった場合、URL書き換えモジュールがURLの一部としてを使用{R:2}しないことがわかったため、使用しています。これは私のパターン用ですが、ルールのパターンによって異なる場合があります。WebMethod.jqaspx{R:2}

Page WebMethodを使用するだけでは複雑に聞こえるかもしれませんが、初期構成後、.jqスクリプトに呼び出しの拡張機能を追加する必要があります。

これがお役に立てば幸いです。

于 2013-05-14T21:40:28.420 に答える
0

問題を解決する方法はわかりません。代わりに、Webサービスにリクエストを送信しています(URLには、URLの書き換えをバイパスする.asmxが含まれています)...

元の問題を解決する方法を知っている場合は、アドバイスしてください!

于 2013-04-02T02:22:00.190 に答える