アプリケーションUIJQueryASP.NETMVC4プロジェクトからのweb.apiメソッドのアドレス指定に問題があります。
アプリケーションとweb.apiは異なるプロジェクトに分割されます。これはアーキテクチャ上の制約であり、変更できないため、2つを1つのプロジェクトにまとめて答えないでください。
プロジェクトを実行すると、ソリューションのweb.apiプロジェクトが1つのポートで実行され、アプリケーションが別のポートで実行されます。
web.apiアクションメソッドへのajax呼び出し内で、UIのポートがweb.apiのuriに配置されるため、web.apiアクションメソッドが呼び出されることはありません。
正しいURIが生成されていることを確認するにはどうすればよいですか?
したがって、UIのJQueryは次のようになります。
$.ajax({
"dataType": 'json',
"type": "GET",
"url": "api/products",
"success": function (data) {
$.each(data, function(i, item) {
var str = '<li>Product Id: ' + item.Id + ' Stock Code: ' + item.StockCode + '</li>';
$('#productId').append(str);
});
},
"error": function (data) {
$.each(data, function(i, item) {
var str = '<li>Product Id: ' + data[i].Id + ' Stock Code: ' + data[i].StockCode + '</li>';
$('#productId').append(str);
});
}
});
要求されているURIは次のようになります。
http://localhost:50481/api/products
ただし、web.apiは別のポートでホストされています。