У нас почти то же самое с языком сайта (фрагмент из нашего global.asax.cs):
routes.MapRoute(
"DefaultLanguage",
"{lang}/{controller}/{action}/{id}",
new { lang = "de-CH", controller = "Home", action = "Index", id = "" }
);
Всякий раз, когда язык не установлен, в нашем случае язык будет установлен на швейцарский немецкий.
Любая ссылка на действие будет автоматически содержать код языка с текущего сайта. Поэтому нам не нужно указывать какой-либо язык в ссылках на действие.
Изменить тип сайта просто, просто добавьте routeValues к вашей ссылке на действие. например, * +1008 *
<%= Html.ActionLink("Linktext", "Action", "Controller", new { siteType = "b" } %>