开发者

MVC3 maproute where first value of URL is querstring for default controller and action

I want to make a route something like this:

routes.MapRoute(
        开发者_如何学编程    "Default", // Route name
            "{s}", // URL with parameters
            new { controller = "Home", action = "Index", s = UrlParameter.Optional } 
        );

Where s is a parameter for the default controller and action.. Is this possible? i would also settle for something like:

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 } 
        );

But neither work.. i suspect because the first element/paramater is always expected to be a controller?


If you have only the following route definition (make sure you have removed all other route definitions from your RegisterRoutes method):

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

and the following controller:

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

a request of the form http://foo.com/abc would be routed to the Home controller and the Index action will be invoked and passed s=abc.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜