Я бы посоветовал вам взглянуть на Route Debugger
установка nuget
PM> Install-Package routedebugger
После того, как вы установили его в свой проект, поместите эту строку кода в метод запуска вашего приложения и нажмите на URL, который вы отлаживаете.
protected void Application_Start()
{
RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
}
Это точно скажет вам, почему ваши маршруты не работают должным образом.
Что касается вашего настоящего вопроса, ваш Controller
на самом деле называется IndexController
? Потому что мне это не кажется правильным
public class IndexController : Controller
{
public ActionResult Index()
{
return View();
}
}
Я предполагаю, что у вас действительно есть что-то вроде HomeController
или AdvertiserController
, и если это так, у вас должно быть что-то вроде
routes.MapRoute(
"advertisers_default", // Route name
"advertisers/{controller}/{action}/{id}/{advertiserName}", // URL with parameters
new { controller = "Home",
action = "Index",
advertiserName = UrlParameter.Optional },
new { id = "[0-9]+",
controller = "[a-zA-Z]+",
action = "[a-zA-Z]+" }
);
, а затем нажмите на ссылку http://example.com/advertisers/{id}/{advertiser-name}
Проще говоря, этот URL выглядит неправильно для меня
/ рекламодателей / контроллер / действие / {ID} * * тысяча тридцать-четырь
должно быть
/ Рекламодатели / дом / {идентификатор}
или даже
/ Рекламодатели / дом / {ID} {рекламодатель имя} /