Try*_*ing 4 javascript asp.net asp.net-web-api angularjs
我正在尝试使用我传递到服务器端的过滤对象从服务器获取过滤数据.我已经成功地使用了一个帖子:
角度:
var filter: { includeDeleted: true, foo: bar };
$http({ method: 'post', url: 'api/stuff', data: filter });
Run Code Online (Sandbox Code Playgroud)
web api:
public IEnumerable<StuffResponse> Post([FromBody]Filter filter)
{
return GetData(filter);
}
Run Code Online (Sandbox Code Playgroud)
但我不想为此使用帖子,我想使用get.但这不起作用:
角
$http({ method: 'get', url: 'api/stuff', params: filter });
Run Code Online (Sandbox Code Playgroud)
web api
public IEnumerable<StuffResponse> Get([FromUri]Filter filter)
{
return GetData(filter);
}
Run Code Online (Sandbox Code Playgroud)
还尝试指定params:{filter:filter}.如果我尝试[FromBody]或什么都没有,过滤器为空.使用FromUri我至少得到一个对象 - 但没有数据.任何想法如何解决这个问题,而无需为所有过滤器属性创建输入参数?
是的,您可以通过发送带有 选项的方法使用Get方法发送数据params
var data ={
property1:value1,
property2:value2,
property3:value3
};
$http({ method: 'GET', url: 'api/controller/method', params: data });
Run Code Online (Sandbox Code Playgroud)
并且您将通过[FromUri]在您的api控制器方法中使用来获得此信息
public IEnumerable<StuffResponse> Get([FromUri]Filter filter)
{
return GetData(filter);
}
Run Code Online (Sandbox Code Playgroud)
并且请求网址将是这样的
http://localhost/api/controller/method?property1=value1&property2=value2&property3=value3
Run Code Online (Sandbox Code Playgroud)