0

我的数据库中有下表。

Userid   username              usercity
1        amit                  mumbai
2        vishal                ahmedabad 
3        shekhar               indore
4        nitin                 bhopal
5        dhanraj               jaipur   

我已经创建了视图模型和控制器并使用 DBML 显示了它。
http://example.com/Home/UserList
但是当我点击详细信息链接时,url 结构如下:
http ://example.com/mymvc1/home/details/5

5是身份证。

我不想传递 ID,我想传递用户名

id 应该会自动转换为用户名。

我怎样才能做到这一点?

4

1 回答 1

4

添加{username}到路由而不是 id 有点像:

routes.MapRoute("ViewUser", "Somepath/View/{username}",
                    new { controller = "Users", action = "View" }
                );

然后在您的列表中使用

@Html.ActionLink("View User", "View", new { username = item.Username })

然后在你的控制器中有:

public ActionResult View(string username)

更新:

请注意,如果用户名是唯一的,上述内容只是一个好主意。否则,您可以将用户名作为可选参数,以便在 url 中获取名称。

像这样:

routes.MapRoute("ViewUser", "Somepath/View/{userID}/{username}",
 new { controller = "Users", action = "View", username = UrlParameter.Optional },
 new { userID = @"\d+" } 
  );

然后用户

@Html.ActionLink("View User", "View", new { userID = item.UserID, username = item.Username })

并回到int userID控制器中

于 2013-05-22T12:09:41.650 回答