将长输入参数列表传递给web api

时间:2014-09-26 23:25:21

标签: asp.net-web-api

我正在使用Web API进行概念验证以提供报告结果。唯一的问题是这些报告的性质涉及一长串输入参数。例如,一个报告请求有关员工的信息并接受电子邮件作为标识符。如果某人有来自Excel的2,000名员工的列表,则这可能成为一个巨大的输入参数。

理想情况下,我想让用户只需将列表粘贴到文本框中,单击按钮,然后让我的代码解析列表并一次性生成结果。我可以重组事物,而是强迫用户发布他们的输入列表(将parms保存到数据库表),然后运行报告。

有没有办法处理这个问题,或者我是否应该重新考虑在这个问题中使用Web API调用"一气呵成#34;方式?

1 个答案:

答案 0 :(得分:0)

查询字符串的最大大小为2048个字符。这可以使用下面列出的设置在web.config文件中轻松更改。

但是,我被告知查询字符串长度也是特定于浏览器的。所以我不确定默认的字符长度是否适合你。

另一个解决方案是 -

如果你有一个非常大的查询字符串,那么你可以提交你的Get请求作为POST,你可以传递一个类的数组。您也可以传递一个数组

[HttpPost]
[Route("/reports/employeereport")]
public void Employee(CustomObject[] pos)
{ 
}

您可以将此方法称为:

$.ajax({
    url: "/reports/employeereport",
    data: JSON.stringify({ pos: objectData }) ,
    dataType: 'json',
    contentType: 'application/json'
    type: 'POST',
});