我在 JavaScript 中有以下复杂对象,其中包含过滤器选项
var filter={caseIdentifiter:'GFT1',userID:'2'};
我想将其传递给 ASP.NET MVC4 WebApi 控制器 GET
[HttpGet]
public IEnumerable<JHS.Repository.ViewModels.CaseList> Get([FromBody]Repository.InputModels.CaseListFilter filter)
{
try
{
return Case.List(filter);
}
catch (Exception exc)
{
//Handle exception here...
return null;
}
}
使用 jQuery ajax 调用
var request = $.ajax({
url: http://mydomain.com/case,
type: 'GET',
data: JSON.stringify(filter),
contentType: 'application/json; charset=utf-8',
cache: false,
dataType: 'json'
});
ASP.NET 控制器方法中的“filter”对象为“null”。如果我将其更改为 POST,则过滤器对象将正确传递。有没有办法将复杂对象传递给 GET?
我不想将 URL 的参数分开,因为会有很多参数会使其效率低下,很难有可选参数,这样即使添加了新参数,方法签名也保持不变。