2

そこで最近、コントローラー(およびその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に作成します。

これは賢明なアプローチですか?これを行うためのより良い方法はありますか?

4

1 に答える 1

2

合理的なアプローチのようです。

ただし、System.ComponentModelには、おそらく活用できるDescriptionAttributeクラスがすでに存在します。マニュアルページにも、そのプロパティを反映するためのサンプルコードがいくつかあります。

于 2010-06-21T17:38:04.290 に答える