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!
精彩评论