我正在使用web api开发Web应用程序。我遇到的问题是关于捕获http请求正文。这是我在控制器中使用的功能:
// GET: api/Factories
public IQueryable<Factory> GetFactories([FromBody] string region)
{
///////// I SET MY BREAKPOINT HERE
Continents c = Continents.World;
if (region==null)
{
return db.Factories;
}
switch (region)
{
case "Europe":
c = (Continents)0;
break;
case "Asia":
c = (Continents)1;
break;
case "Africa":
c = (Continents)2;
break;
case "North_America":
c = (Continents)3;
break;
case "South_America":
c = (Continents)4;
break;
case "Australia":
c = (Continents)5;
break;
}
if (c == Continents.World)
{
return db.Factories;
}
else
{
var result = db.Factories.Where(factory => factory.region == c);
return result;
}
}
我在代码中标记的行中设置了断点。我的函数参数字符串为null。所以看起来函数永远不会从请求体中获取适当的数据。 这是发送请求的java脚本函数:
function findFactories(){
var regionForSearch = $('#continentsDropDown').val();
// Send an AJAX request
$.ajax({
url: uri1,
method: "GET",
dataType: "json",
data: { //THE IMPORTANT PART
region: regionForSearch
}
})
.done(function (data) {
// On success, 'data' contains a list of products.
$.each(data, function (key, item) {
$('<li>', { text: formatItem(item) }).appendTo($('#factories'));
});
iscrtajMapu();
});
}
在写入的行中重要的是我猜可能存在错误的地方。我的问题是,任何人都可以看到这里的问题是什么?它是java脚本函数还是我的c#后端?此外,还有可能的修复或任何建议。提前致谢。