Как я могу перехватить или переопределить создание ссылки HtmlHelper в ASP.NET MVC?

Мы начали проект с использованием WebForms и разработали довольно сложную систему портала для размещения хлебных крошек, навигации и так далее. Мы постоянно храним дополнительный параметр идентификатора контекста навигации в URL, чтобы мы могли отслеживать пользователя Надежная история хлебных крошек, даже если они используют несколько вкладок или кнопки навигации в своем браузере. Для того чтобы это работало должным образом в WebForms, все не-обратные ссылки должны генерироваться служебными методами портала. Мы получаем ряд преимуществ от использования служебных методов портала, так что это действительно не бремя. И так как любые действия, которые происходят на данной странице, будут использовать постбэки, URL не изменяется при выполнении этих действий.

Теперь мы начинаем использовать MVC для некоторых частей нашего сайта, и переход имеет так далеко было относительно гладко. Я хотел бы убедиться, что наш портал может использоваться должным образом, не мешая. До сих пор мы использовали несколько пользовательских методов расширения HtmlHelper для генерации ссылок между различными страницами (даже если «страницы» не В MVC действительно не существует, некоторые действия приводят к отображению всей страницы). Это позволяет нам сохранять идентификатор контекста навигации в URL для действий на странице. Однако, чтобы не потерять этот параметр URL, мы используем только запросы AJAX для каких-либо действий на странице. Это лишает нас возможности отвечать на большинство запросов действий с полным просмотром или следовать шаблону Post-Redirect-Get.

Хотя я большой поклонник AJAX и технически не планируем поддерживать браузеры без включенного javascript и т. Д., Я все же хотел бы оставить наши настройки открытыми. Поэтому я хотел бы иметь возможность сделать так, чтобы каждый раз, когда ссылка или форма обрабатывались с помощью встроенных методов HtmlHelper, я мог подключиться к конструкции URL-адреса и добавить идентификатор контекста к параметрам запроса URL-адреса. Есть ли (желательно простой) способ сделать это? Или вы видите другое решение моей проблемы, которое было бы лучше?

1
задан StriplingWarrior 19 August 2010 в 17:47
поделиться

1 ответ

Нет возможности войти в существующие пути кода HTMLHelper. Тебе придется раскатывать свой собственный. Есть надежда, что вам, вероятно, удастся обойтись поверхностными фасадами, которые просто переходят к существующему помощнику html.

2
ответ дан 2 September 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: