Мне нужно изменить способ, которым MVC рендерит ссылки действий (а также формы и URL-адреса и т. Д.) В зависимости от настроек конфигурации. Я пишу приложение для Facebook, используя MS MVC, и мои ссылки действий должны отображать ссылку так:
<a href="/MyFBApplication/Home/Index/">home</a>
щелкнув ссылку выше, можно перейти к:
http://apps.facebook.com/MyFBApplication/Home/Index/
«MyFBApplication» - это название приложения facebook.
Чтобы построить ссылку я начал с вызова
Html.ActionLink("Home", "Index", "Home")
Когда пользователь нажимает на ссылку, Facebook отправляет запрос на эту ссылку под обложками:
http://www.myapplicationserver.com/facebook/123456/Home/Index/
(123456 - это идентификатор клиента и необходим)
Тогда ответ отсюда обрабатывается фейсбуком и отображается пользователю как:
http://apps.facebook.com/MyFBApplication/Home/Index/
Как уже упоминалось выше, Facebook запрашивает данные страницы за кулисами от.
http://www.myapplicationserver.com/facebook/123456/Home/Index/
Проблема в звонке на
Html.ActionLink("Home", "Index", "Home")
отобразит ссылку, которая ведет к
http://apps.facebook.com/facebook/123456/Home/Index/
и мне нужно, чтобы это привело к:
http://apps.facebook.com/MyFBApplication/Home/Index/
Я все сделал правильно, купив сборку нового набора методов расширения.
Html.FacebookActionLink("Home", "Index", "Home")
Html.FacebookBeginForm("Index", "Home")
Html.Facebook(etc)
Но это имеет «запах». Я хотел бы найти место, где я могу перехватить процесс Html.ActionLink () в процессе и изменить вывод. Тогда я могу использовать все стандартные звонки.
Спасибо!