過去 1 か月ほど、大規模な MVC アプリケーションに取り組んできましたが、カスタム ルート ハンドラーを定義する必要が生じたのはこれが初めてで、いくつかの問題に直面しています。基本的に、渡すパラメーターが 2 つあります。1 つ目は必須で、2 つ目はオプションです。
こちらの回答に従っています。
これが私のカスタムルートです:
routes.MapRoute(
"MyRoute",
"{controller}/{action}/{param1}/{param2}",
new {
controller = "MyController",
action = "MyAction",
param1 = "",
param2 = "" // I have also tried "UrlParameter.Optional" here.
}
);
そして、私のアクションメソッドの署名:
public ActionResult MyAction(string param1, string param2)
URL を試してみると、http://[myserver]/MyController/MyAction/Test1/Test2
param1 = "Test1" および param2 = "Test2" で期待どおりに動作します。
URL を試してみると、http://[myserver]/MyController/MyAction/Test1
両方のパラメーターが null です。
私が道に迷っているので、誰かが私がここで間違っていることを教えてくれることを願っています。