起こったこと
Viewで@Html.ActionLinkを使ってaタグを作成すると、hrefに「?Length=4」がついてしまう。
CSHTML
@Html.ActionLink("About", "About", "Home", new { @class = "btn btn-primary" })
原因
コントローラーを直で書いているのが原因みたい。
string routeValuesのオブジェクト「Home」を取得します。MVCはこれをパブリックプロパティを検索してルート値に変換します。stringオブジェクトの場合、唯一のパブリックプロパティはLengthであり、Lengthパラメータでルートが定義されないため、プロパティ名と値がクエリ文字列パラメータとして追加されます。
対処
string controllerNameにべた書きせずにstring routeValuesに設定する。
CSHTML
@Html.ActionLink("About", "About", new { controller = "Home" }, new { @class = "btn btn-primary" })