私はコントローラーに持っています:
[ルートプレフィックス("")]
ルートを使用したアクション:
[Route("things-to-do/{filter1?}/{filter2?}/{filter3?}/{filter4?}/{Area?}", Name = "thingstodo")] public async virtual Task<ActionResult> ThingsToDo(string filter1 = "", string filter2 = "", string filter3 = "", string filter4 = "", string q = "")
これらの URL をブラウザに入力すると、これが機能します。
ローカルホスト/やるべきこと ローカルホスト/
やるべきこと/何か
ローカルホスト/やるべきこと/何か/何か
しかし、これらはすべて null を返します。
Url.RouteUrl("thingstodo")
Url.Action("ThingsToDo", "ControllerName")
Url.Action(MVC.ControllerName.ThingsToDo())
これらは正しい URL を返します。
Url.Action("ThingsToDo", "ControllerName", new { filter1 = "something", filter2 = "something" })
Url.Action(MVC.ControllerName.ThingsToDo("something", "something"))
オプションのパラメーターが必要ない場合に、URL を正しく生成する方法についてのヘルプをいただければ幸いです。