Html.ActionLink
次の呼び出しが行われる理由:
Html.ActionLink("Approve", "Advance", new { id = Model.ID, step = StepType.Approve })
「安らかな」URL ではなく、クエリ パラメータを使用して URL を生成します。つまり、次のようになります。
http://localhost/Website/Case/Advance/1?step=Refer
デフォルト ルートしか登録していませんが、「StepType」パラメータが何であるかを理解できる追加のルートが必要ですか?
デフォルトルートの後にこのルートを追加しようとしました:
routes.MapRoute(
"CaseAdvance",
"{controller}/{action}/{id}/{step}",
new {controller = "Case", action = "Advance", id = "", step = StepType.Refer});
しかし、それは効果がありませんでした。デフォルトの前に新しいルート登録を追加すると、エラーが発生しました。
パラメーター ディクショナリに、'Website.Controllers.CaseController' のメソッド 'System.Web.Mvc.ActionResult Advance(Int64, Website.Core.StepType)' の null 非許容型 'System.Int64' のパラメーター 'id' の null エントリが含まれています。 '。パラメーターをオプションにするには、その型を参照型または Nullable 型にする必要があります。