0

ビュー Index.aspx を返す HomeController から Index() を呼び出したとします。Index.aspx の javascript で ajax を jquery すると、別のコントローラー (ExternalController) のメソッドを呼び出すことができますか?

$.ajax({
            type: "POST",
            url: "/Home/sayHi",
            dataType: "json",
            data:({ currRow : centerPost[0], offset : ((-1 * Math.ceil(numRows / 2)) + 1) }),
            error:function(request){alert(request.statusText)},
            success:function(result){alert(result)}
        }).responseText;

エラーは発生しませんでした。ページは HomeController からレンダリングされました。

$.ajax({
            type: "POST",
            url: "/Row/getRowName",
            dataType: "json",
            data:({ currRow : centerPost[0], offset : ((-1 * Math.ceil(numRows / 2)) + 1) }),
            error:function(request){alert(request.statusText)},
            success:function(result){alert(result)}
        }).responseText;

内部サーバーエラーが発生しました...

ビューがレンダリングされたものとは異なるコントローラーを呼び出していることが原因である可能性があるかどうか疑問に思っています

4

1 に答える 1

2

現在のビューをレンダリングしたコントローラーとは異なるコントローラーを呼び出すと、何らかのエラーが発生する理由はありません。コントローラーは、共通の一連のコマンドの単なるハンドラーです。これらのコマンドがブラウザーのアドレス バー、ハイパーリンク、または jQuery ajax 呼び出しのいずれによって発行されたかは問題ではありません。3 つすべてが同じプロトコルを使用して、コントローラーにコマンドを発行します。

私の推測では、内部サーバー エラーの原因となっているコードに問題があると思われます。ブラウザーで /Row/getRowName に直接アクセスして、何が起こるかを確認しましたか? GET と POST、POST のみ、GET のみで動作しますか? GET のみがサポートされている場合、おそらく POST を発行していますか? さらにサポートを提供するには、さらに情報が必要です。

于 2009-06-24T03:57:17.483 に答える