0

私には少し奇妙に振る舞うルートをモデル化する必要があります。彼らが私にやりたいことは次のとおりです。

/AssetManagement -> Asset Landing page
/AssetManagement/Add -> Add an asset
/AssetManagement/Edit -> Edit an asset
/AssetManagement/Locations -> Locations landing page
/AssetManagement/Locations/Add -> Add a location
/AssetManagement/Locations/Edit -> Edit a location

よくわかりませんが、これは 2 つのコントローラーでモデル化する必要があると思います。AssetsController と LocationsController。ビュー Add/Edit/Index は、尊重された View フォルダーの下に存在し、おそらく 2 つのルートが定義されていると思います。

routes.MapRoute(
    "AssetManagement", // Route name
    "AssetManagement/{action}/{id}", // URL with parameters
    new { controller = "Assets", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
    new[] { "MyApplication.Web.Website.Controllers" }
);

routes.MapRoute(
    "AssetManagementLocations", // Route name
    "AssetManagement/{controller}/{action}/{id}", // URL with parameters
    new { controller = "Locations", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
    new[] { "MyApplication.Web.Website.Controllers" }
);

それは私には少し間違っているように感じます。ものを処理するためのベストプラクティスが欠けていますか? これにより、今後どのような問題が発生する可能性がありますか? 彼らが私に構築してほしいシステムの多くは、このように機能します。

// 編集 ここでこのような質問をするのが不適切な場合は、どこに質問すればよいですか?

4

2 に答える 2

1

できることは、エリアを作成することです。

エリアで、アセット用とロケーション用に 2 つのコントローラーを作成します。

(危険な可能性がある) ルートで遊ぶ代わりに、MVC の概念で遊んでください。

あなたが指定した 2 番目のルートは、エリアに密接に関連しています。エリアを作成すると、ルートが自動的に作成されます。お役に立てれば。

Area - AssetManagement
   Controller1 - HomeController 
              Action1 - Add
              Action2 - Delete 

   Controller2 - LocationsController
              Action1 - Add
              Action2 - Delete 

routes.MapRoute(
    "AssetManagementLocations", // Route name
    "{Area}/{controller}/{action}/{id}", // URL with parameters
    new { controller = "Locations", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
    new[] { "MyApplication.Web.Website.Controllers" }
);
于 2012-11-14T21:07:46.080 に答える
1

attributerouting プロジェクトを確認してください。Nuget を mvc にインストールし、アクション メソッドまたはコントローラーをパスで装飾することができます。これにより、どのルートがどのコントローラー/メソッドにマップされるかという明確な意図が得られます。

https://github.com/mccalltd/AttributeRouting/wiki/2.-使い方

于 2012-11-14T21:47:44.783 に答える