开发者

ASP.NET MVC 3.0 Routing

开发者 https://www.devze.com 2023-04-01 18:57 出处:网络
I have Controller Blog I have Action Index() and Show(stirng id) Index() displaying all posts and Show(sting id) displaying single post

I have Controller Blog

I have Action Index() and Show(stirng id)

Index() displaying all posts and Show(sting id) displaying single post

I want to map Blog/Show/开发者_StackOverflow社区id to responce on Blog/id

So i went to Global.asxc and did that:

routes.MapRouteLowercase(
                "Blog", 
                "Blog/{id}", 
                new { controller = "Blog", action = "Show", id = UrlParameter.Optional }
            );

But it is seams not to be worked, may be some one may help?


You could have the following routes:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

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

Now:

  • /Blog/123 will map to BlogController/Show(123) action
  • / and /Blog will map to BlogController/Index action


The new route that you want to create should be the first one registered, otherwise the default routing will kick in and process the request.

Ensure that

routes.MapRouteLowercase(
                "Blog", 
                "Blog/{id}", 
                new { controller = "Blog", action = "Show", id = UrlParameter.Optional }
            );

is placed before

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

in Global.asax RegisterRoutes

0

精彩评论

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