Пользовательский маршрут не находит действия контроллера - PullRequest
3 голосов
/ 02 июня 2010

По какой-то причине мое приложение неправильно перенаправляет мой метод контроллера. У меня есть рутелинк на моей веб-странице:

<%= Html.RouteLink("View", "Blog", new { id=(item.BlogId), slug=(item.Slug) }) %> 

В global.asax.cs у меня есть следующие маршруты -

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "MoreBlogs",
        "Blog/Page/{page}",
        new { controller = "Blog", action = "Index" }
    );

    routes.MapRoute(
        "Blog",
        "Blog/View/{id}/{slug}",
        new { controller = "Blog", action = "View"}
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Blog", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );

А потом у меня есть класс BlogController, у которого есть метод -

   public ActionResult View(int id, string slug)
    {

       ... etc.
    }

Я поставил точку останова в первой строке метода View, но это не ударил вообще. Я проверил с помощью отладчика маршрута для формата localhost / Blog / View / 1 / test, и он соответствовал моему пользовательскому маршруту. Все, что я получаю, это 404 во время выполнения этого, я не могу понять, почему маршрут не публикуется в методе представления в моем контроллере - какие-нибудь идеи?

Ответы [ 2 ]

0 голосов
/ 03 июня 2010

Предполагая, что вы также используете области в приложении, и что RouteLink фактически вызывается из области, я думаю, что вам может потребоваться указать area="" в вашем объекте routeValues ​​(вам также нужно указать контроллер ). В общем, я думаю, что вам нужно будет добавить часть area="..." ко всем вашим Routelink вызовам при использовании областей.

Это то, что я понял о RouteLink и Area, но, похоже, не могу найти никакого справочного материала, детализирующего ограничения.

0 голосов
/ 02 июня 2010

(Предполагается, что отладчик маршрута основан на отладчике Фила Хаака post)

Если вы получаете 404, это заставляет меня думать, что сама страница просмотра не может быть найдена.

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