2009-10-13 2 views
0

Мне нужно создать ссылки на действия внешних контроллеров.ASP.NET MVC Action ссылки в собственном классе

Я могу использовать Html.Action в представлениях, Url.Action в контроллерах. Это хорошо, но ...

У меня есть свой класс, где я хочу создать код HTML для меню сайта, который используется в site.master. Но как я могу генерировать ссылки на действия в своем классе? Возможным решением является создание этого HTML-кода в BaseController, но я не хочу этого делать, потому что мой класс должен быть независимым с возможностью генерации правильных ссылок.

Я был отправлен на поиски в течение часа, но не нашел решения.

Любая помощь? Спасибо

ответ

1

Создание ссылки Action Link зависит от конфигурации маршрутизации и контекста контроллера. Оба они доступны только в реальном конвейере ASP.NET MVC. Подумайте об этом: если я сказал вам создать ссылку для действия, но ничего не сказал о веб-приложении, как бы вы это сделали?

Если вы беспокоитесь о SOLID, почему бы не ввести UrlHelper, a HtmlHelper или ControllerContext в ваш класс, который генерирует ссылки на действия?

1

Передайте себе ссылку на объект Html, чтобы вы могли использовать его в своих методах при создании экземпляра класса. Вы можете сделать это, когда вы создаете экземпляр объекта меню или при каждом вызове функции, если они статичны.

Смежные вопросы