Как я могу обмануть MVC для рендеринга ссылок на основе другого виртуального пути?

Я запускаю кучу приложений на discountasp.net с аддоном субдомена. Поскольку с общим хостингом у меня не может быть нескольких сайтов IIS, я также написал модуль HTTP, который позволяет сайтам в подпапках работать так, как если бы они работали в корневом каталоге. Так, например, вместо размещения моего блога на dandoes.net/blog, я могу разместить его на blog.dandoes.net (который на самом деле является dandoes.net). Это отлично работало до сих пор, когда я пытаюсь использовать его вместе с MVC.

HtmlHelper генерирует свои URL на основе виртуального пути приложения, а не данных пути в URL. Итак, если я нахожусь на blog.dandoes.net и я хочу дать ссылку на blog.dandoes.net/Samples, у меня может быть такой код:

<%=Html.ActionLink("Samples", "Index", "Samples")%>

В обычных обстоятельствах это генерирует URL-адрес blog.dandoes.net/Samples, но вместо этого генерирует blog.dandoes.net/Blog/Samples, поскольку виртуальный каталог - /Blog.

Я мог бы, вероятно, занять 5 минут и написать что-нибудь действительно хакерское, чтобы делать то, что я хочу, но я думаю, что было бы действительно интересно, если бы я мог заставить среду MVC делать то, что я хочу.

Итак, есть ли способ, которым я мог бы заставить его отображать правильные URL?

1 ответ

Помощник HTML - это просто класс, который возвращает строку в ваш код. Все, что вам нужно сделать, это написать свой собственный вспомогательный класс для вывода строки в нужном вам формате.

Другие вопросы по тегам