2

通常、任意のコントローラーのインデックスアクションにルーティングするActionLinkは、リンク内の「インデックス」を省略しhttp://localhost:8080/Controller/idます。私の場合、文字列をIDとしてEtaコントローラーのインデックスアクションに渡そうとしています。コードは次のとおりです。

@Html.ActionLink(item.Name, "Index", "Eta", new { id = item.Name }, null)

結果のリンクは次のように出力されます:http://localhost:8080/Eta/Index/some-input-stringの代わりにhttp://localhost:8080/Eta/some-input-string

このRouteConfigは、[ファイル]>[新しいプロジェクト]>[MVC4アプリケーション]の場合とまったく同じです。

4

2 に答える 2

3

文字列にルート値を含めるため、URIのアクションとして「インデックス」を含める必要があります。

アクションを指定しない場合、ルート値はアクションとして解釈されます。

例えば:

http://localhost:8080/Etc/abc123
                       ^    ^
                Controller  |
                            |
                        Action (oops)

あなたにとって、abc123は意味のあるパラメータです。ルーティングエンジンにとって、それはアクションです。

于 2013-03-25T00:09:54.363 に答える
0

MVC4テンプレートの標準ルートは{Controller}/{Action} / {id}であるため、デフォルトのAction="Index"で{Controller}/{id}に変更する必要があります

于 2013-03-25T00:10:51.660 に答える