我有这样的网址: http://website.com/Profile/Member/34
我需要这个URL运行如下: http://website.com/Profile/John
将John视为用户id = 34的配置文件名称。
任何人都可以指示我这样做吗?
答案 0 :(得分:1)
在global.asx中,您需要添加新路线。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Member", // Route name
"Profile/{member}", // URL with member
new { controller = "YourController", action = "Profile"}
);
}
您仍然需要实现处理基于{member}查找配置文件的操作。
答案 1 :(得分:1)
您必须在global.ascx.cs中添加一个自定义路由,该路由将用于重定向到良好的控制器。但我猜“John”不是一个独特的值,因此您必须将ID保留在Url中,或者如果John是用户名并且是唯一的,您可以使用此URL:
routes.MapRoute("Member", "Profile/{member}", new { controller = "Member", action = "Profile"});
然后在您的控制器中,您将拥有:
public ActionResult Profile(string username){
//fetch from the db
}
如果“John”不是唯一值,我建议您使用:
routes.MapRoute("Member", "Profile/{id}/{member}", new { controller = "Member", action = "Profile"});
所以你的网址看起来像http://website.com/Profile/John/34而你是控制者:
public ActionResult Profile(int id){
//fetch from the db
}
如果您需要更多帮助,请与我联系!