2

次のコントローラーを使用して、4 つのパラメーターと 1 つのパラメーターを取得し、文字列の配列を取得します。

public Response Get(string a, double b, double c, string[] d)
{
   do something
} 

ご覧のとおり、4 番目の (d) パラメータは文字列の配列です。最初の 3 つのパラメーターは値を取得しますが、d は null を示します。

次のURLでフィドラーを使用してデバッグしています

04/api/Controller?a=Hello&b=-37.8031231&c=144.9836514&d=Italian&d=bars

何が間違っているのですか?URLですか?

4

2 に答える 2

1

fiddlerから配列データを投稿できます。指定したURLは正しいです。ただし、リクエストヘッダーに正しいコンテンツタイプがあることを確認してください。

コントローラのアクションメソッドをテストするためにビューを作成する必要はありません。

クライアントのリクエスト

ここに画像の説明を入力してください

サーバーの応答

ここに画像の説明を入力してください

上記のPSは、コントローラーのアクションメソッド用です。回答を投稿した後、APIコントローラーを使用していることに気付きました。APIコントローラーに対して行った回答を編集します。

上記はAPIControllerでも機能します。フィドルから投稿する場合

于 2013-02-25T06:57:55.903 に答える
1

あなたのビューを見なくても、インデックスを作成せずに2つの入力を name='d' と名付けたことを要約できます

例:

配列インデックスを使用して id 入力に名前を付けることで、配列を作成できます。

@using (Html.BeginForm())
{
    <input type="text" name="d[1]">
    <input type="text" name="d[2]">
}

入力にインデックスを付けると、フレームワークはそれらをリストとして使用します

注: URL を表示します。Post なしで配列や複雑なオブジェクトを渡すことはできません。

于 2013-02-25T05:54:45.890 に答える