少し悪夢を見て、うまくいけば、私はただ愚かです。
次のコントローラー アクションがあります。
<HttpGet()>
Function News() As ActionResult
End Function
<HttpGet()>
Function News(ByVal id As Integer) As ActionResult
End Function
URLにIDがない場合は最初に、ある場合は2番目に行きます。
次のエラーが発生しました。
コントローラ タイプ 'MarketsController' のアクション 'News' に対する現在のリクエストは、次のアクション メソッド間であいまいです: タイプ TradeChaseMVC.MarketsController の System.Web.Mvc.ActionResult News() System.Web.Mvc.ActionResult News(Int32)タイプ TradeChaseMVC.MarketsController
したがって、次のように、オプションの id パラメータを使用せずにルートを明示的に作成した場合、次のように考えました。
routes.MapRoute( _
"Default2", _
"{controller}/{action}/{id}",
New With {.controller = "Home", .action = "Index"},
New With {.action = "^[a-zA-Z_]+$", .id = "\d{1,8}|"}
)
routes.MapRoute( _
"Default", _
"{controller}/{action}",
New With {.controller = "Home", .action = "Index"},
New With {.action = "^[a-zA-Z_]+$"}
)
動作しますが、同じエラーではありません。
これで、簡単な解決策はメソッドを別のものと呼ぶことだとわかりましたが、これはしたくありません。
また、ID メソッドのプレフィックスとして属性を作成し、そこに ID があることを確認し、そうでない場合はそのメソッドを許可しないことも考えていましたが、これも機能しません。
どんな助けでも大歓迎です。カール