2

データベースを更新するために、オブジェクトの配列を Web アプリケーションから Nancy Web サービスに送信する必要があります。

オブジェクトだけを送信すると、正常に動作します。私の 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][Month]=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" />

これにより、ナンシーはデータを正しく解析します。配列としてアクセスできるようにするには、Model Bindingを使用する必要があります。

ところで、データ ソースとしてフォームを操作するためのオブジェクトの配列は取得できませんでした。プリミティブ型の配列のみです。ただし、オブジェクトの配列は、XHR でフォーマットされた JSON 形式のデータを送信する場合に機能します。しかし、あなたのケースでこれが可能かどうかはわかりません。

于 2013-06-27T12:49:37.720 に答える
1

あなたのコンテキストから、オブジェクトの「送信」(http POST?) または「Web メソッド」(Nancy Module?) の意味がわかりません。おそらく、いくつかのコードが明確にするのに役立つでしょうか?

とにかく、Nancy の Model Binding 機能を使用できるかもしれません。これがその方法を示す別の質問です。

NancyFx のオブジェクトの配列を使用したモデル バインド POST

于 2013-04-30T13:16:40.210 に答える