0

そのため、検索クエリを受け取り、この場合は JSON を返す ApiController をセットアップしました。

_Layout.cshtml ページにも検索フォームがあります。ユーザーが何かを検索すると、ApiController メソッドを正常にヒットして JSON を返す ajax がありますが、どうすればよいかわかりません。/SearchResults/ にリダイレクトして結果を表示したいのですが、WebApi を使用するのは面倒だと感じずにはいられません。

検索ボタンから ApiController をヒットし、結果を別のビューに送信するのは理にかなっていますか? その他のビューにリダイレクトするにはどうすればよいですか?

$('#btnSearch').click(function () {
            var query = $('#searchQuery').val();
            $.ajax({
                url: "/api/search",
                data: {query : query},
                type: 'GET',
                dataType: 'application/json',
                statusCode: {
                    200: function (queryResult) {
                        //I want to send queryResult to another view
                    },
                    404: function () {
                        alert("failure");
                    }
                }
            });
        });
4

1 に答える 1

0

あなたは質問をしているのですが、正当な理由で、あなたが説明することはぎこちなく感じます、そして実際それはそうです。検索のペイロードを非常に小さく保つ(HTMLではなくデータのみを渡す)ため、WebAPIを押すことは良い習慣です。あなたが本当にやりたいことは、別のビューを要求しないことです。つまり、statusCodeが200の場合、あなたがしたいのは、現在のビュー内のクライアント側でHTMLをレンダリングすることです。もちろん、これはJQueryで簡単に実行でき、コードスニペットからはすでに使用しているように見えます。

はい、検索ボタンからApiControllerを押したのは理にかなっています。」

検索ページにJavaScriptを追加して、WebAPIから取得した検索結果データから表示したい検索結果でページのセクションを動的に更新します。 別のビュー/ページを取得するために、さらに別のWebリクエストを起動しないでください。

于 2012-10-16T16:45:46.847 に答える