2012-11-03 74 views
1

我想顯示在以下網址用戶詳細信息:用戶在ASP.NET MVC路由的網址,像www.website.com/users/jeffAtwood

www.website.com/users/yasser

最後一個條目yasser是用戶名我嘗試了幾條路線,但它只是沒有工作。

我的用戶控制器如下所示。

public class UserController : Controller 
{ 
    public ActionResult Index(string username) 
    { 
     var model = _service.GetUserDetails(username); 
     return View(model); 
    } 
} 

我已經回覆this和其他幾個鏈接,但我真的無法弄清楚它是如何工作的。

有人可以幫我解決這個問題。由於

編輯

我目前的航線配置低於

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

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
+1

鑑於您的控制器是 「UserController的」鏈接將是www.website.com/user/yasser;除非您在global.asax中指定了另一條路線。此訪問用戶的詳細信息的方式必須假設用戶名是唯一的 – Mihai

+0

但它不起作用,我已更新與我的路線詳細信息的問題,並沒有我沒有任何其他路線指定。當我輸入www.website.com/user/yasser時,我得到'/'應用程序中的服務器錯誤。該資源無法找到。「404消息。請幫忙。 – Yasser

回答

7

路線執行從頂部到底部:

routes.MapRoute("UserProfile", 
    "Users/{username}", 
    new { controller = "User", action = "Index", username = string.Empty } 
); 

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

是的!我已經忘記了從上到下執行的路由,並且我將路由放置在默認路由下,因爲它不工作。謝謝@webdeveloper。 – Yasser