Поведение метода индекса по умолчанию в ASP.NET MVC - PullRequest
1 голос
/ 04 февраля 2011

У меня есть следующий ActionMethod в UserController

public ActionResult Index(string id, string name, int? org)

Когда я перехожу к> http://example.com/User, вызывается вышеуказанный метод действия. Это хорошо.

Однако, когда я перехожу к> http://example.com/User/1, он не может найти ресурс. Разве он не должен перейти к описанному выше методу действия с id = 1, а остальные равны нулю?

Маршрутизация в Global.asax:

context.MapRoute(   
    "Default",   
    "/{controller}/{action}/{id}",   
    new { action = "Index", id = UrlParameter.Optional }   
);

Ответы [ 2 ]

2 голосов
/ 04 февраля 2011

Вам нужно будет добавить эти другие параметры в вашу маршрутизацию, чтобы они когда-либо были заполнены.

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

Затем вы можете перейти к http://yourdomain/User/Index/1

как имени и организациинеобязательно, вы также можете передать их, когда хотите

http://yourdomain/User/Index/1/fred

http://yourdomain/User/Index/1/fred/44

1 голос
/ 04 февраля 2011

Вы должны перейти к http://mysite.com/User/Index/1 вместо http://mysite.com/User/1

...