私は自分自身とパートナーによって販売されている製品を 2 年間開発してきました。マネージャーは、デモ ライセンスを使用してデモ アプリとしてのみ使用されるソース コードをパートナーに提供したいと考えています。
すべてのデモ モジュールは既に開発されていますが、ライセンスに記載されている場合は、ルート (url) に "Demo" を表示する必要があります。
例:
へのすべての呼び出し
/コントローラー1/アクション1
URL を次のように変換する必要があります
/デモ/コントローラー1/アクション1
初挑戦:
routes.MapRoute(
name: "DefaultDemo",
url: "Demo/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
ただし、アプリ内のコントローラー/アクションへの呼び出しごとに「デモ」を設定する必要があるため、これは部分的に機能します。
2 回目の試行:
routes.MapRoute(
name: "DefaultDemo",
url: "{demo}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { demo = "Demo" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, demo = "Demo" }
);
これでは、変数として設定し、その変数の制約として「デモ」を設定して、誰かがそれを他のテキストに変更できないようにしました。
次に、パラメーター「demo」を設定して、「デフォルト」ルートを他のルートへのリダイレクトとして使用しようとしましたが、この方法では機能しないため、明らかに失敗しました。
3 回目の試行:
var demoRoute = routes.MapRoute(
name: "DefaultDemo",
url: "{demo}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { demo = "Demo" }
);
routes.Redirect(x =>
x.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional, demo = "Demo" })
)
.To(demoRoute);
最後の例では、RouteMagic ナゲットを使用して古い「デフォルト」ルートをデモ ルートにリダイレクトしようとしましたが、うまくいきませんでした。
似たようなことをした人はいますか?