0

所以我设置了一个 ApiController 来接受搜索查询,并在这种情况下返回 JSON。

我的 _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

你在问这个问题,并且有充分的理由,你所描述的感觉很尴尬,事实上确实如此。使用 WebAPI 是一种很好的做法,因为您将搜索的有效负载保持在非常小的范围内(仅传递数据而不传递 HTML)。您真正想要做的不是请求另一个视图,即当 statusCode 为 200 时,您想要做的是在当前视图内的客户端呈现 HTML。这当然很容易在 JQuery 中完成,从您的代码片段看起来您已经在使用它。

是的,从我的搜索按钮中点击 ApiController 确实有意义”

在您的搜索页面中添加一些 JavaScript,该 JavaScript 会使用您希望从 WebAPI 返回的搜索结果数据中显示的搜索结果动态更新页面部分。 不要触发另一个网络请求来获取另一个视图/页面。

于 2012-10-16T16:45:46.847 回答