2

我需要将一组对象从我的 Web 应用程序发送到我的 Nancy Web 服务,以更新我的数据库。

只发送一个对象,它工作正常:在我的网络方法中,我使用Request.Form.<data>.Value.Trim(). 但是,如果我尝试发送数据数组,那将不起作用。

那么如何在我的 Nancy web 方法中获取和处理一组数据呢?

->我尝试发送的序列化对象:
“data[0][Id]=56&data[0][SatisM]=1&data[0][Type]=0&data[0][Commentaire]=com&data[0][Month] =3&data[1][Id]=57&data[1][SatisM]=2&data[1][Type]=1&data[1][Commentaire]=com1&data[1][月]=3&data[2][Id]=58&data [2][SatisM]=1&data[2][Type]=2&data[2][Commentaire]=com2&data[2][Month]=3&data[3][Id]=59&data[3][SatisM]=3&data[3 ][类型]=3&data[3][评论]=com3&data[3][月份]=3"

-> 相同但编码的 %22data%5B0%5D%5BId%5D=56&data%5B0%5D%5BSatisM%5D=1&data%5B0%5D%5BType%5D=0&data%5B0%5D%5BCommentaire%5D=com&data%5B0 %5D%5BMonth%5D=3&data%5B1%5D%5BId%5D=57&data%5B1%5D%5BSatisM%5D=2&data%5B1%5D%5BType%5D=1&data%5B1%5D%5BCommentaire%5D=com1&data%5B1 %5D%5BMonth%5D=3&data%5B2%5D%5BId%5D=58&data%5B2%5D%5BSatisM%5D=1&data%5B2%5D%5BType%5D=2&data%5B2%5D%5BCommentaire%5D=com2&data%5B2 %5D%5BMonth%5D=3&data%5B3%5D%5BId%5D=59&data%5B3%5D%5BSatisM%5D=3&data%5B3%5D%5BType%5D=3&data%5B3%5D%5BCommentaire%5D=com3&data%5B3 %5D%5B月%5D=3%22

4

2 回答 2

2

根据您的问题,我想您是从表单作为 GET 请求发送数据。我遇到了类似的问题,但是我在 POST 请求中发送了我的数据。也许它也适合你:

要发送一个数组,属于该数组的所有表单元素都需要相同的名称:

错误的

<input name="MyArray[0]" value="x" />
<input name="MyArray[1]" value="y" />

正确的

<input name="MyArray" value="x" />
<input name="MyArray" value="y" />

这样,Nancy 将正确解析您的数据。为了能够以数组的形式访问它,您需要使用Model Binding

顺便说一句,我没有让对象数组将表单用作数据源,只有原始类型的数组。但是,当您发送使用 XHR 格式的 JSON 数据时,对象数组会起作用。但我不能说这在你的情况下是否可行。

于 2013-06-27T12:49:37.720 回答
1

从您的上下文中,我不确定您所说的“发送”对象(http POST?)或“Web 方法”(Nancy 模块?)是什么意思。也许一些代码可以帮助澄清?

无论如何,也许您可​​以使用 Nancy 的模型绑定功能。这是另一个显示方法的问题。

模型绑定 POST 与 NancyFx 中的对象数组

于 2013-04-30T13:16:40.210 回答