2011-09-10 12 views
4

私はASP.NET MVC3アプリケーションを持っています。私はすべてのフォームで表示したいカスタムツールバーを持っていたいと思います。このカスタムツールバーは、1つまたは複数のアクションリンクを持つことができます。私は、以下のように使用できるカスタムHTMLヘルパーを開発する必要があります。Asp.netのカスタムヘルパーmvc3

@Html.CustomToolBar(items => { 
      items.Add("Action","Controller","Name","Text"); 
      items.Add("Action1","Controller1","Name1","Text1");}) 

このカスタムエクステンションでは、リンクhtmlが生成され、フォームに表示されます。私はToolBarActionクラスを持っています。List<ToolBarAction>@Html.CustomToolBarから取得したいと思います。

public class ToolbarAction 
    { 
    public string Name { get; set; } 
    public string Action { get; set; } 
    public string Controller { get; set; } 
    public string Text { get; set; } 

    } 

これをどのように達成することができますか?あなたが私に適切なリソースを指すことができれば、それは本当に素晴らしいことだ。..

感謝

よろしく..このような

答えて

2

何か(私はNameプロパティは、とても、ためだったかわかりませんでしたクラスとして追加しました):

public static class HelperExtensions 
{ 
    public static MvcHtmlString Menu(this HtmlHelper html, Action<IList<ToolbarAction>> addActions) 
    { 
     var menuActions = new List<ToolbarAction>(); 
     addActions(menuActions); 

     var htmlOutput = new StringBuilder(); 

     htmlOutput.AppendLine("<div id='menu'>"); 

     foreach (var action in menuActions) 
      htmlOutput.AppendLine(html.ActionLink(action.Text, action.Action, action.Controller, new { @class = action.Name }).ToString()); 

     htmlOutput.AppendLine("</div>"); 

     return new MvcHtmlString(htmlOutput.ToString()); 
    } 
} 
+0

ありがとうモートン! – AnarchistGeek

+0

ツールバーを生成するメニュー関数の使い方はありません。コードは共有されていません:( – Thomas

+0

'CustomToolBar'ではなく' Menu'メソッドに名前を付けた点を除いて、質問と同じコードです。 –