所以我有一个ApiController设置,它接受一个搜索查询,并在这种情况下返回JSON。
我的_Layout.cshtml页面上也有一个搜索表单。当用户搜索任何东西时,我有一个成功点击我的ApiController方法并返回JSON的ajax,但我不确定如何处理它。我想重定向到/ SearchResults /并显示结果,但我不禁觉得我已经不再使用WebApi了,我应该把它剪掉。
从搜索按钮点击ApiController是否合理,然后将结果发送到另一个View?如何重定向到其他视图?
$('#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");
}
}
});
});
答案 0 :(得分:0)
你问这个问题,并且有充分的理由,你描述的东西感觉很尴尬,实际上它是。点击WebAPI是一种很好的做法,因为您保持搜索的有效负载非常小(仅传递数据而不是HTML)。您真正想要做的是,不要求另一个视图,即当statusCode为200时,您想要做的是在当前视图内的客户端上呈现HTML。这当然很容易在JQuery中完成,你的代码片段就像你已经在使用它一样。
是的,从搜索按钮点击ApiController确实有意义“
在搜索页面中添加一些JavaScript,它会动态更新页面部分,并显示您希望从WebAPI返回的搜索结果数据中显示的搜索结果。 请勿触发其他网页请求以获取其他视图/页面。