Вы можете настроить маршрут типа «ловить все», чтобы направлять все / что-то запросы конкретному действию и контроллеру, что-то вроде:
routes.MapRoute(
"ShortUrls",
"{name}",
new {controller = "ShortUrl", action = "Index", name = UrlParameter.Optional}
);
(в зависимости от того, как настроена остальная часть вашей маршрутизациивверх, вы, вероятно, не хотите делать это в точности так, поскольку это, вероятно, вызовет у вас серьезные головные боли при маршрутизации - но это работает здесь для простоты)
Затем просто перенаправьте действие на желаемыйURL, основанный на указанном значении:
public class ShortUrlController : Controller
{
//
// GET: /ShortUrl/
public ActionResult Index(string name)
{
var urls = new Dictionary<string, string>();
urls.Add("disney", "http://mysite.com/travel/planning-your-disney-vacation");
urls.Add("scuba", "http://mysite.com/travel/planning-your-scuba-vacation");
return Redirect(urls[name]);
}
}