0

私はしばらくの間 ASP.NET に携わってきましたが、MVC については (一般的に) ほとんど行っていませんが、ASP.NET MVC フレームワークについては非常に新しいものであり、いくつかの用語についても正しい用語を使用しています。

これが私の例です(私が取り組んでいる実際のアプリケーションは異なりますが、これは私が使用できる公開例です) - Redmineのより単純なバージョンを.netで作成したい.

問題を一覧表示したいのですが、example.org/issues にアクセスすると、すべてのプロジェクトのすべての問題 ( http://www.redmine.org/issuesと同様) のリストが表示されます。

しかし、example.org/project/issues のようにプロジェクトに移動すると、そのプロジェクトの問題だけが表示されます ( http://www.redmine.org/projects/redmine/issuesに似ています)。これは、example.org/project2/issues などでも同じです。

これの正しい用語は何ですか? 開発者は「問題」のコードを 2 か所書き直さず、このコードを再利用したと思います。

私はこれを完全に正確に表す用語を知らないため、ASP.NET MVC の世界で手始めによい例を見つけるのは困難です。この 2 番目の部分は、ASP.NET MVC で見ることができる例と、Visual Studio でどのように見えるかです。

/project/ の下にも、設定、詳細、ログなど、http://www.redmine.org/projects/redmine/をナビゲートする方法と同様のものがいくつかあります。

最後に、プロジェクトが最上位にない場合はどうなるでしょうか? のように、私のアプリケーションがもっと似ていたらどうなるでしょうか:

example.org/
example.org/projects/
example.org/projects/project1
example.org/projects/project1/issues
example.org/projects/project2
example.org/dashboard/
4

2 に答える 2

2

任意の名前のコントローラーを 1 つセットアップします (ここでは RedMineController を使用します)。

そのコントローラーには、ListIssues という名前の単一のアクション メソッドがあります。ProjectName という名前のパラメーターを受け入れます。

public ActionResult ListIssues(string projectName) {}

最後に、global.asax.cs に 2 つのルートを作成します。

routes.MapRoute(
    "Issues Root",
    "issues",
    new { controller = "RedMine", action = "ListIssues" }
);

routes.MapRoute(
    "Project Issues",
    "projects/{projectName}/issues",
    new { controller = "RedMine", action = "ListIssues" }
);

ListIssues アクションで、projectName == null かどうかを確認し、そうであればすべての問題を取得し、それ以外の場合は特定の問題を取得します。最初のルートは null を渡し、2 番目のルートは URL にあるものを渡します。URL のプロジェクト名が無効な場合は、忘れずに 404 をスローしてください。

お役に立てれば!

于 2012-05-11T20:37:49.110 に答える