3

つまり、ユーザーなどの多くのクラス/モデルに CRUD 機能を提供する管理パネルに取り組んでいます。これを実装する方法は非常に簡単です。スキャフォールディング テンプレートを使用してコントローラーとビューを生成し、それらをすべて最上位Adminディレクトリの下に結合します。

アプリケーションは大幅に拡張され、管理コントローラーには他の 5 つのコントローラーの内容が含まれるようになりました。admin ビュー フォルダには 20 以上のビューがあります。さらに、管理ページへのパスは恐ろしいものに見えます!

/Admin/UserCreate
/Admin/GroupCreate
...

ルーティングを使用してこれを修正できると思います。私の考えでは、各コントローラーを分離したままにしておくことは可能ですが、それでも管理ページの一部として反映されます。

/Admin/User/Create
/Admin/Group/Create

これにより、パスが読みやすくなり、このアプリケーションのディレクトリ構造がより耐えやすくなります。

1)カスタムルーティングを利用して、本質的に「サブコントローラー」を作成することは可能ですか? より良い方法はありますか?これまでルートを扱ったことはありません。

2) ある時点で、管理コントローラーのフィルターを介してユーザーから管理コントローラーをロックする予定です。上記のようにルーティングを変更しても、セキュリティ フィルターは適切に機能しますか? 「サブ」コントローラーのそれぞれに同じフィルターを適用する必要がありますか?

4

1 に答える 1

2

これはMVC Areasを使用して実現できます。

上記の例を使用すると、別の管理エリアを作成し、そのコントローラー/アクション構造をその中に配置するだけで、管理プレフィックスなしでデフォルトのエリアを維持できます。:)

他の質問については、Authorize属性を使用してセキュリティを処理するか、独自の (から派生した) を実装して、安全なメソッドをそれでActionFilterAttribute装飾することができます。

于 2013-01-25T00:10:54.837 に答える