3

私のMVC3プロジェクトには、インデックスアクション用のこのメソッドを使用したコントローラー「テスト」があります。

Function Index(fields() As String) As ViewResult
...

次に、ビューに複数選択のドロップダウンリストがあります

@Html.ListBox("fields", New MultiSelectList(my_list, "Value", "Text")) 

すべてが正常に機能しますが、このようにクエリ文字列のパラメータ「フィールド」の複数の値を渡すActionlinkを作成しようとすると

@Html.ActionLink("TestLink", "Index", New With {
         .fields = "value1&fields=value2"}) 

クエリ文字列がエンコードされたHTMLソースで次の壊れたリンクを取得します

<a href="/Test/Index?fields=value1%26fields%3Dvalue2">TestLink</a> 

ActionLinkによってクエリ文字列パラメータに複数の値を渡すにはどうすればよいですか?

4

1 に答える 1

0

リストボックスから値をフェッチして動的にこれを行う場合は、呼び出したいコントローラーアクションをアクションが指しているフォーム内にリストボックスを配置し、送信ボタンを使用します。その後、HTMLがその役割を果たします。

ActionLinkを生成する場合は、次を使用できます。

@Html.ActionLink(
    "TestLink", 
    "Index", 
    New RouteValueDictionary() From { 
        { "fields[0]", "value1" }, 
        { "fields[1]", "value2" } 
    }
)
于 2013-01-21T15:12:44.620 に答える