Проблема с присвоением идентификатора действию - PullRequest
0 голосов
/ 26 августа 2011

Я настроил маршруты в Global.asax.cs так:

routes.MapRoute("Post", "Post/Show/{PostId}", new { controller = "Post", action = "Show" });

и это предварительный просмотр используемого контроллера с действием:

public partial class PostController : Controller
{
    public ActionResult Show(int PostId)
    {
        ...
    }
}

Проблема в том, что он выбирает действие Show () для использования, но не дает значения int, поэтому дает ноль. Вот пример URL, который я использовал: ../ Post / Show / 0

EDIT: Когда я настраиваю свои маршруты следующим образом:

        routes.MapRoute("Post", "Post/Show/{id}", new { controller = "Post", action = "Show" });
        routes.MapRoute("Timeline", "{controller}/{action}/{Page}", new { controller = "Timeline", action = "List" });

все работает нормально, но когда я настраиваю это так:

        routes.MapRoute("Timeline", "{controller}/{action}/{Page}", new { controller = "Timeline", action = "List" });
        routes.MapRoute("Post", "Post/Show/{id}", new { controller = "Post", action = "Show" });

2-й маршрут «Пост» не проходит. Почему?!

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Вы должны попробовать:

routes.MapRoute("Post", "Post/Show/{PostId}", new { controller = "Post", action = "Show", PostId = UrlParameter.Optional });
1 голос
/ 26 августа 2011

Это должно сработать, просто запомните порядок появления маршрутов в global.asax тоже очень важен.

 routes.MapRoute(
                "Post", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Post", action = "Show", id = UrlParameter.Optional }  // Parameter defaults
            )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...