I have this at the top of each of several translations of the Terms of Use page:
<li><a href="@Url.Action("Index", "Terms")">English</a></li> <li><a href="@Url.Action("Index", "Terms", "de")">Deutsch</a></li> <li><a href="@Url.Action("Index", "Terms", "fr")">Français</a></li> <li><a href="@Url.Action("Index", "Terms", "it")">Italiano</a></li> <li><a href="@Url.Action("Index", "Terms", "nl")">Nederlands</a></li> <li><a href="@Url.Action("Index", "Terms", "hu")">Maygar</a></li> <li><a href="@Url.Action("Index", "Terms", "es")">Español</a></li> <li><a href="@Url.Action("Index", "Terms", "zh")">简体中文</a></li> <li><a href="@Url.Action("Index", "Terms", "pt-pt")">European Português</a></li> <li><a href="@Url.Action("Index", "Terms", "pt")">Português</a></li>
This is an action that should handle clicks:
public class TermsController : Controller { public ActionResult Index(string id) { switch (id) { case "de": return View("de"); case "fr": return View("fr"); case "it": return View("it"); case "nl": return View("nl"); case "hu": return View("hu"); case "es": return View("es"); case "zh": return View("zh"); case "pt": return View("pt"); case "pt-pt": return View("pt-pt"); default: return View(); } }
and these are my routes:
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Terms", "{controller}/{id}", new { controller = "Terms", action = "Index" } ); routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } ); routes.MapRoute( "ThankYou", "{controller}/{action}/{email}/{id}" ); }
From the main page (for example, in English), the first line (for example, English) looks right:
http:
Why do other (i.e., foreign) generated URLs look like this?
http:
It’s also strange if I manually type
http:
for example, and go to the "Terms" page in German, then the first hyperlink (for example, back to the "Terms of Use" page) looks like this:
http:
Go here to see the actual site:
http://inrix.com/traffic/terms