【发布时间】:2017-03-07 15:05:25
【问题描述】:
我是 MVC 新手,正在 MVC 上编写 Web 应用程序。我正在尝试发送获取请求。
我有一个剃须刀页面,我正试图从中发送请求:
$(document).ready(function () {
var query = $('#productQuery').val();
alert("Start.");
var uri = 'api/search/products?q=abc';
$.get(uri, function (data) {
alert("Load was performed.");
});
});
除了我有一个链接到页面的控制器,它工作得很好,这个 ApiController:
[RoutePrefix("api/search")]
public class SearchController : ApiController
{
[Route("products")]
[HttpGet]
public async Task<IEnumerable<ProductDocument>> searchProducts(
[FromUri(Name = "q")]string query,
[FromUri(Name = "cat")]string[] categories=null)
{
ProductsResponse response = await SolrWebApi.QueryAsync<ProductsResponse>(query);
if (response.Header.Status != 0)
{
throw new HttpResponseException(HttpStatusCode.InternalServerError);
}
return response.Body.Documents.Take(3).ToArray();
}
如果有人能告诉我我做错了什么以及为什么我的获取请求没有发送,我将不胜感激。
【问题讨论】:
-
你的 uri 应该是
api/search/products给定路由属性。您可能想查看@Url.Action以通过控制器+操作获取 url,而不是对路由进行硬编码。如果还是不行,试试不带categories参数(或者带零参数并建立起来)。
标签: jquery asp.net ajax asp.net-mvc get