2009-06-15 13 views
1

同じasp.netページを使用してデータを編集および追加していますが、一部のフィールドのみが無効になり、それに応じて有効になります。今、私が追加ページからwebmethodを呼び出すと、うまくいきますが、編集ページから呼び出すと、それはありません。私はサーバー側のメソッドを呼び出すために同じJavaScript関数を使用していますが。コードを参照してください: .aspxの:今WebServiceFailedExceptionをスローするAjax関数

function KeyCheck() 
{ 
    var KeyID = event.keyCode; 
    if(KeyID==46) 
    {    
     PageMethods.Delete_files(CurrentObj.id); 
} 

私はその生成、次のエラー、編集してこの同じメソッドを呼び出すようにしてみてください。

Microsoft JScript runtime error: Sys.Net.WebServiceFailedException: The server method 'Delete_files' failed with the following error:

答えて

2

あなたがhereを見れば、彼らは同様の問題を議論します。最後の答えは選択されていませんが、私は彼の言うことをやっておくことをお勧めします。最初のパラメータの後に2つの関数コールバックを渡すことができます。 1つは成功したAjax呼び出し用、もう1つは失敗用です。

あなたの機能がより次のようになります。あなたのPageMethodコールに(彼らはオプションでなければなりませんが)「行方不明」パラメータを追加

var onDeleteSuccess = function(result) { 
    //Successfully deleted files, maybe display confirmation to user. 
}; 
var OnDeleteError = function(result) { 
    //Deleting files unsuccessful, display error to user. 
}; 
PageMethods.Delete_files(CurrentObj.id, onDeleteSuccess, OnDeleteError); 

試してみて、それはそれを解決するかどうかを確認します。

編集:

は、私はあなただけIE7でページを使用してみましたclosed bug at connect.microsoft.com about this problem.を見つけましたか?その場合は、他のブラウザでテストし、動作するかどうか確認してください。あなたの唯一のオプションは、IE7を新しいバージョンにアップグレードするか、問題を再オープンすることです。コメントの後に

編集:

があなたのPageMethods.Delete_files関数呼び出し前にこのコードを配置してみてください。

PageMethods.set_path("PageYouAreTransferringto.aspx"); 

私はあなたが呼んでいるハンドラは、サーバー側のページの方法について混乱だと思います別のページに表示されるので(ブラウザとJavaScriptに)呼び出されます。

+0

ご返信ありがとうございます。 私は3つの引数でもう1つのfunctionコマンドを試しました。しかし残念ながら、エラーメッセージは同じです。 私はまた、特定のマイクロソフトのリンクを見ている、と彼らはまだ質問に答えていない。彼らは問題を再現できない、またはブラウザ関連の問題だと言ってリクエストを終了しました。 他に手掛かりがある場合はお知らせください。 ありがとうございます。 –

+0

OK何かを見つけました。 Response.Redirect()を使用して最終ページから現在のページに移動すると、うまく動作します。しかし、私がServer.transfer()を使うと、AJAXは上記のエラーを出します。 私はこれがなぜこのような振る舞いをしているのか分かりません...残念ながら、私は戻ってserver.transferをresponse.redirectに変更することはできません。becozコーディングは既にその基準で行われています... それでも同じエラーが発生した場合の回避策を探しています。 いくつかのアプローチを提案してください。 ありがとうございます。 –

関連する問題