私の ASP MVC Web アプリケーションでは、コントローラーに次のような「name」パラメーターを使用したアクションがよくあります。
Function Consult(name As String) As ActionResult
.....
Return View()
End Function
これらのアクションを、「id」パラメーターを使用して参照するのと同じ方法で参照できるようにしたいと考えています: ../Book/Consult/MyBookName
しかし、デフォルトルートが「id」パラメーターで引き続き機能することを望みます。つまり、デフォルト ルートが "id" または "name" のいずれかをパラメーター名として受け入れるようにしたいと考えています。
したがって、このようにルートを構成しようとしましたが、すべてのリクエストが最初のルートを使用し、2 番目のルートを使用しないように見えるため、機能しません。「id」パラメーターを使用したアクションは機能しなくなりました。
routes.MapRoute( _
name:="Name", _
url:="{controller}/{action}/{name}", _
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
)
//Default Route
routes.MapRoute( _
name:="Default", _
url:="{controller}/{action}/{id}", _
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
)
私のコード例は VB ですが、C# でも回答を受け付けます :) どうもありがとうございました。
編集:明確にするために、パラメーターの名前を「id」に変更するだけで、ルート構成のデフォルトルートだけですべてが正常に機能します。しかし、これらの特定のケースではよりクリーンであるため、「名前」を保持したいと思います..