2011-09-15 8 views
2

私は1つのパラメータを受け入れるWebMethodを持っています。WebMethod(時々)はウェブサイト全体を返します

パラメータを指定せずにwebmethodにリクエストを送信すると、すべて正常に動作しますが、同じメソッドにパラメータを渡すと、文字列ではなくサイト全体が返されます。

ページパラメータは、リストの内容以外は何も変更されません。

Listは、文字列のリストを表示するListViewです。

URLRewritingを使用すると、インスタンスのパラメータを指定したインスタンスでURLが異なります。

誰でもこの問題を解決できますか?

マイWebMethod属性:

[WebMethod] 
public static string GetResult(int id) 
{ 
    return "Hooray"; 
} 

マイウェブメソッド呼び出し:パラメータなしの

PageMethods.GetResult(docId, 
    function onSuccess(list) { 
     $(element).parent().siblings().filter(":first").append(list); 
    }); 

URL:パラメータを指定して
www.mywebsite.com/items is rewritten to www.mywebsite.com/items.aspx

URL:
www.mywebsite.com/items/1 is rewritten to www.mywebsite.com/items.aspx?id=1

答えて

3

ここには、状況に少し気をつけるかもしれないa discussion about your same issueがあります。基本的には、PageMethodsを扱うハンドラが{pagename.aspx}/{methodname}を探しているので、それが機能していないということです。あなたのURLの書き換えによって、ページメソッドを呼び出すことを認識できなくなります。これは、それが代わりに実際のURLを使って自分のページのメソッドを呼び出すようになります

PageMethods.set_path('/items.aspx'); 

:そのページの

1つの提案は、どこかで同じシグネチャの自動生成コールの後、あなたのjavascriptのコードに次を追加しました書き換えられたものの

+1

ありがとう!出来た。あなたのソリューションに追加しなければならなかったのは、ルートURLを追加することだけでした。私は 'var url = window.location.href;を使う。 var baseUrl = url.substring(0、url.indexOf( '/'、24));PageMethods.set_path(baseUrl + '/item.aspx'); ' – JNM

関連する問題