2009-08-28 2 views
1

Я собираюсь написать тонну помощников для своего приложения.ASP.NET MVC пользовательские вспомогательные объекты

Для многих из них я бы хотел не расширять HtmlHelper, а вместо этого создать другой вспомогательный класс по двум причинам: 1) уметь писать, скажем, Link.Home и Icon.Edit вместо Html. HomeLink и Html.IconEdit; 2), чтобы иметь возможность легко информировать стандартных помощников от пользовательских и где они определены.

Возможно ли это? Как?

Разве это не рекомендуется? Зачем?

благодаря

ответ

0

Это было бы возможным с помощью HtmlHelper и вызвать новый класс Link и значок для примера.

Я бы не рекомендовал его по той простой причине, что в Html.HomeLink и Html.IconEdit четко указано, что делает этот метод, он выводит Html в виде HomeLink и Icon Edit.

4

Ну, "вспомогательные методы" являются только методы расширения. Если вы хотите, чтобы иметь возможность писать Link.Home в ваших взглядах, вам нужно будет продлить ViewPage и добавить свойство Link типа, скажем, ILink. Интерфейс ILink сам по себе может быть пустым. Теперь все ваши взгляды должны наследовать от MyViewPage и написание вспомогательных методов становится простой задачей:

public static string Home(this ILink link, string text) 
{ 
    // ... 
}