これはおそらく非常に単純なことですが、弱々しくグーグルで検索してもうまくいきません。
私たちが構築している Web アプリケーションには、プロジェクトとテンプレートがあります。テンプレートは、IsTemplate フラグが true に設定された単なるプロジェクトです。当然のことながら、両方のケースを処理する (または処理する) 単一の Project コントローラーが用意されています。
New
コントローラーのアクション メソッドへのルートが 1 つあります。
Project/New
それは、それ{controller}/{action}/{id}
を処理する標準的なルートです。これで、New
アクション メソッドにIsTemplate
パラメーターが追加されました。それが false として渡される 1 つのルート (上記のもの) と、true として渡される 2 つ目のルートが必要です。
Templates/New
そのようなさまざまな URL で任意のアクション メソッド パラメータをマスクする適切な方法は何ですか? 私は次のことを試しましたが、ルーティングを混乱させただけです(Html.ActionLink
最終的には を指しますTemplates/New
):
routes.MapRoute(
null,
"Template/New",
new { controller = "Project", action = "New", IsTemplate = true }
);
それとも、これを 2 つのアクション メソッドに分割し、ハードコードされたパラメーター値を使用して単一のプライベート コントローラー メソッドを呼び出す方が簡単でしょうか?