开发者

Asp.net mvc Details method

I am working on a project, where I have used the default routing 开发者_如何学C

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

I have a users controller and methods like Index, create and details

I dont want to create links like http://mysite/users/details/111/somename instead i want to create http://mysite/users/111/somename like stackoverflow kind of url. I know I can achieve by registering a route like this (before default route)

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

but then all my other urls start creating problem. for example if i have url http://somesite/users/registersuccess

Is there in workaround for this issue, or I should register all the urls.

Regards

Parminder


You'd need a constraint on your id parameter for your routes:

routes.MapRoute(
    "UsersDetails",
    "Users/{id}/{name}",
    new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional }, 
    new { id="\d+" }
    );

Then your other routes wouldn't be affected.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜