routeValues
ActionLink メソッドの引数にすべてのパラメーターを渡すことができます。
@Html.ActionLink(
"go to index", // linkText
"index", // actionName
new { // routeValues
id = "123",
participant = "yes",
flagged = "no"
}
)
デフォルトのルーティング設定を想定すると、次が生成されます。
<a href="/Home/index/123?participant=yes&flagged=yes">go to index</a>
アップデート:
投稿したコメントをさらに詳しく説明するとLength=6
、たとえば ActionLink が URL を生成した場合、これは間違ったオーバーロードを使用したことを意味します。たとえば、これは間違っています:
@Html.ActionLink(
"go to index", // linkText
"index", // actionName
"home", // routeValues
new { // htmlAttributes
id = "123",
participant = "yes",
flagged = "no"
}
)
これが間違っている理由は、各パラメーター名に付けたコメントから明らかです。そのため、ヘルパー メソッドの正しいオーバーロードを選択するために、Intellisense を注意深く読んでいることを確認してください (幸運にも Razor で Intellisense が動作している場合:-))。
コントローラー名を指定する場合の正しいオーバーロードは次のとおりです。
@Html.ActionLink(
"go to index", // linkText
"index", // actionName
"home", // controllerName
new { // routeValues
id = "123",
participant = "yes",
flagged = "no"
},
null // htmlAttributes
)
null
が最後の引数として渡されることに注意してください。htmlAttributes
それがパラメーターに対応するものです。