Как создать настраиваемую панель инструментов фильтра html helper в mvc3 - PullRequest
3 голосов
/ 14 ноября 2011

Я долго борюсь с этим.Мне нужно создать собственный HTML-помощник mvc3 для удобного управления фильтрами и панелями инструментов.

Весь этот помощник должен выглядеть примерно так ниже или что-то подобноеТо, что я хочу сделать, это иметь помощника, где я мог бы давать кнопки панели инструментов и поля фильтра, и он генерировал бы панель инструментов и форму фильтра для меня.новое в asp.net mvc

@Html.Toolbar(x => {
   x.AddFilterButton();
   x.AddButton("Naujas");
   x.AddDropDownList();
   },
   @<text>
   @Html.EditorFor(Model.ListFilter.Name)
   Filter
   ResetFilter
   </text>,
   filterVisible: false)

Как мне этого добиться?Любая помощь будет высоко оценена.Спасибо, действительно.

1 Ответ

2 голосов
/ 03 февраля 2012

Примерно так:

public static class ToolbarExtensions {
    public static Toolbar Toolbar<T>(this HtmlHelper<T> html) {
        return new Toolbar();
    }
}

public class Toolbar : IHtmlString {
    public string ToHtmlString() { /* build your HTML off the state here */ }

    public Toolbar AddButton(string label) {
        /* build up state here */

        return this;
    }
}

Синтаксис этого будет немного другим, а не лямбда, будет выглядеть так:

@Html.Toolbar().AddButton("Button 1").AddButton("Button 2")

Но вы можете легко изменить его, чтобы использовать цепочечный объект в лямбда-выражении вместо вызова метода Toolbar.

Интерфейс IHtmlString указывает ViewEngine выводить объект в виде необработанного HTML при его обнаружении. Цепочка просто достигается путем возврата текущего экземпляра в ваши методы после изменения состояния объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...