Запуск ASP.NET MVC в поддомене заставляет Html.ActionLink отображать битые ссылки - PullRequest
4 голосов
/ 05 мая 2010

Я использую MVC в поддомене
http://test.domain.com указывает на каталог / Test в моей учетной записи webhost4life.

Html.ActionLink("About", "About", "Home")

выводит ссылку на

http://test.domain.com/Test/Home/About - что дает 404

ссылка должна быть ..

http://test.domain.com/Home/About

Есть ли способ переопределить ActionLink, чтобы пропустить / Test при рендеринге?

Спасибо

<Ч />

Эксперимент 1

Я добавил маршрут к таблице вот так ...

routes.MapRoute(
     "Test",  // Route name
     "Test/{controller}/{action}/{id}",  // URL with parameters
     new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);

и теперь ссылка действия отображает ссылки, подобные этой .. http://test.domain.com/Test/Test/Home/About/ при нажатии на него не дает 404, но дает Home контроллер О действии

Результат

Нет больше неработающих ссылок, но сайт отображает ужасные ссылки.

1 Ответ

0 голосов
/ 21 мая 2010

Для сайта, использующего множество поддоменов, я использую изящное расширение MVC от ITCloud под названием UrlRouteAttribute. Это позволяет назначать маршрут каждому действию в качестве атрибута, задающего путь и имя. Я расширил это, чтобы разрешить полностью определенные пути - так, чтобы включить домен / поддомен, к которому контроллер должен присоединиться. Если вас это заинтересует, я выложу куда-нибудь копию.

...