Вот предложение с использованием пользовательского маршрута. Я настроил это в файле Global.asax.cs:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Radio and Frequency Route", // Route name
"radio/details/{radioId}/{locationId}/{someUnusedName}", // URL with parameters
new
{
controller = "Some",
action = "SomeAction",
radioId = string.Empty,
locationId = string.Empty
}
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Контроллер довольно прост:
public class SomeController : Controller
{
public ActionResult SomeAction(string radioId, string locationId)
{
ViewData["radioId"] = radioId;
ViewData["locationId"] = locationId;
return View();
}
}
и отвечает на URL-адреса с префиксом / radio / details:
http://localhost:51149/radio/details/123/456/moo
http://localhost:51149/radio/details/abc/xyz/foo
Теперь вы можете создать любой дружественный URL, который соответствует вашим потребностям. Возможно, вы хотите изменить префикс / radio / details на что-то другое?