WebApi を使い始めたばかりで、複数の問題があります。たくさんの情報を読みますが、おそらくいくつかの概念が欠けています。
私のコントローラーで:
public IEnumerable<Product> GetProducts()
{
return db.Products.AsEnumerable();
}
public Product GetProduct(string name)
{
Product product = db.Products.FirstOrDefault(p => p.Name == name);
if (product == null)
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
return product;
}
Javascript :
$('#Search').click(function () {
jQuery.support.cors = true;
var productName = $('#Name').val();
$.ajax({
url: "http://localhost:62178/api/product",
//url: "http://localhost:62178/api/product/" + productName,
type: "GET",
success: function (data) {
alertData(data);
}
});
});
まず、パラメーター productName を渡しても、パラメーターのない GetProduct が呼び出されます (データが返されます)。これらの GET メソッドの両方を呼び出せるようにする必要があります。 次に、success 関数が呼び出されません。そのため、WebApi メソッドからデータを取得できません。
ヒントやガイダンスをいただければ幸いです。ありがとう。WebApiConfig.cs
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
今のところ唯一の問題は、データがアラートされないことです:
$('#Search').click(function () {
jQuery.support.cors = true;
var productName = $('#Name').val();
$.ajax({
url: "http://localhost:62177/api/product/" + productName,
//data: { name: productName },
type: "GET",
dataType: "jsonp",
error: function (request, status, error) {
alert(request.responseText);
},
success: function (data) {
alert(data);
}
});
});