2012-06-21 54 views
1

我有以下网址如何从asp.net MVC4中的动态url获取参数?

http://localhost/user/MyUserName

如何获得 “MyUserName输入” 从该网址是什么?所以我可以在服务器端使用它来检索我想要呈现给客户端的信息?

在Django中,很简单地将其归档。但是,我如何在ASP.net MVC4中做到这一点?

编辑

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

MyUserName输入总是最后“参数” ? –

+0

@Exsaliver没有那是url的动态部分。它可以是任何东西。但我想要这个参数,所以我可以从数据库中获取用户数据。 – starcorn

回答

3

我不知道你是怎么命名的路线参数

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new {controller = "Home", action = "Index", id = UrlParameter.Optional}, 
    null, 
    new[] {"Project.Web.Controllers"}); 

但我想这是Id反正试试这个:

var value = RouteData.Values["Id"]; 

更新:

在你的情况,你应该之前定义一种特殊的路由“之上”默认的:url中

routes.MapRoute(
    "ForUser", 
    "User/{id}", 
    new {controller = "User", action = "UserInfo", id = UrlParameter.Optional}, 
    null, 
    new[] {"Project.Web.Controllers"}); 
+0

好的,如果url看起来像这样'http:// localhost/User/UserInfo/MyUserName',可以得到'MyUserName'。其中'用户'是控制器,'用户信息'是动作。但是,我可以得到我想要的参数,而不需要在url中额外的部分? – starcorn

+0

我只是希望它是'http:// localhost/User/MyUserName',但我不想更改路由部分。 – starcorn