开发者

C# - How to Rewrite a URL in MVC3

开发者 https://www.devze.com 2023-04-09 04:24 出处:网络
I have an URL like this: http://website.com/开发者_开发百科Profile/Member/34 I need this URL runs like this:

I have an URL like this: http://website.com/开发者_开发百科Profile/Member/34

I need this URL runs like this: http://website.com/Profile/John

Given John as profile name for the user id=34.

Can anyone give me directions to do that?


In global.asx you need to add a new route.

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapRoute(
            "Member", // Route name
            "Profile/{member}", // URL with member 
            new { controller = "YourController", action = "Profile"}
        );

    }

You will still need to implement the action that handles looking up the profile based on {member}.


You have to add a custom route in the global.ascx.cs that will be used to redirect to the good controller. But I guess that "John" is not a unique value so you will have to keep the id in the Url, or if John is the username and is unique you can go with this url:

routes.MapRoute("Member", "Profile/{member}", new { controller = "Member", action = "Profile"});

Then in your controller you will have :

public ActionResult Profile(string username){
    //fetch from the db
}

If "John" is not a unique value I suggest you use :

routes.MapRoute("Member", "Profile/{id}/{member}", new { controller = "Member", action = "Profile"});

So your Url will look like http://website.com/Profile/John/34 and youre controller :

 public ActionResult Profile(int id){
        //fetch from the db
    }

Let me know if you need more help!

0

精彩评论

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

关注公众号