Маршруты области игнорируются? - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть следующие маршруты:

routes.MapRoute(
    "Advertisers",
    "advertisers/{controller}/{action}/{id}",
    new { controller = "Index", action = "Index", id = UrlParameter.Optional },
    new string[] { "Portal.Areas.Advertisers.Controllers" }
);

routes.MapRoute(
    "Root", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Index", action = "Index", id = UrlParameter.Optional }, // Parameter defaultsm
    new string[] { "Portal.Controllers" }
);

Однако, когда я захожу в / рекламодатели / контроллер / действие / идентификатор, он не читает параметр id ... что я делаю не так?

Спасибо

1 Ответ

1 голос
/ 29 февраля 2012

Я бы посоветовал вам взглянуть на 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} {рекламодатель имя} /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...