Пользовательский Помощник в Asp.net MVC3 - PullRequest
4 голосов
/ 10 сентября 2011

У меня есть приложение ASP.NET MVC3. Я хотел бы иметь собственную панель инструментов, которую я хочу отображать в каждой форме. Эта пользовательская панель инструментов может иметь одну или несколько ссылок действий. Итак, мне нужно разработать специальный помощник по HTML, который я могу использовать, как показано ниже;

@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; }

  }

Можете ли вы посоветовать мне, как мне этого добиться? Если бы вы могли указать мне соответствующие ресурсы, это было бы здорово на самом деле ..

Большое спасибо

Привет ..

1 Ответ

2 голосов
/ 10 сентября 2011

Примерно так (я не знал, для чего предназначено свойство 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());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...