MVC3 maproute, где первое значение URL является строкой запроса для контроллера по умолчанию и действия - PullRequest
0 голосов
/ 12 июля 2011

Я хочу сделать маршрут примерно таким:

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

Где s - параметр для контроллера по умолчанию и действия. Возможно ли это? я также согласился бы на что-то вроде:

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

        routes.MapRoute(
            "qMap", // Route name
            "sc/{s}", // URL with parameters
            new { controller = "Home", action = "Index", s = UrlParameter.Optional } 
        );

Но ни одна из них не работает .. Я подозреваю, потому что первым элементом / параметром всегда должен быть контроллер?

1 Ответ

0 голосов
/ 13 июля 2011

Если у вас есть только следующее определение маршрута (убедитесь, что вы удалили все другие определения маршрута из метода RegisterRoutes):

routes.MapRoute(
    "Default",
    "{s}",
    new { controller = "Home", action = "Index", s = UrlParameter.Optional } 
);

и следующий контроллер:

public class HomeController: Controller
{
    public ActionResult Index(string s) 
    {
        ...
    }
}

запрос вида http://foo.com/abc будет перенаправлен на контроллер Home, а действие Index будет вызвано и передано s=abc.

...