そこで最近、コントローラー(およびそのIndex ActionMethod)が各ページの上部にある水平バーに(Site.Masterを介して)リストされるナビゲーションバーメニューを動的に構築する方法を思いつきましたが、ユーザーに割り当てられた役割。リストされた各コントローラーは、ユーザーが使用できるActionMethodsも(垂直ドロップダウンで)リストします。
上記の問題を解決するASP.NETMVCの拡張コントローラークラスを作成するために作成したコードについては、こちらを参照してください。
使用可能なすべてのActionMethodと各ActionMethodの短い1文または2文の説明を一覧表示する、各コントローラーのデフォルトのインデックスページも自動的に作成したいのですが、ActionMethodに説明を添付する方法を考えていました。
私の仮定は、私が3つのことをする必要があるということです:
(1)独自の属性、たとえば説明を作成し、各コントローラーの各ActionMethodを次のように装飾します。
[Authorize(Roles="Admin")]
public class SomeController : ExtController
{
[Description("This method adjusts all of your widgets making them better.")]
public ActionResult TweakWidgets()
{
return View();
}
}
(2)基本クラス(ExtController)にパブリックActionResult Index()メソッドを作成します。これは、ExtControllerを継承するすべてのクラスで使用され、そのユーザーが使用できるActionMethodsとその説明のリストを表示します。
(3)そのようなページを作成するIndex.aspxビューをViews/Sharedに作成します。
これは賢明なアプローチですか?これを行うためのより良い方法はありますか?