mvc actionlink参数更改路由URL

时间:2011-09-06 06:32:12

标签: asp.net-mvc model-view-controller asp.net-mvc-3 c#-4.0 asp.net-mvc-routing

所以我的行动上有一个actionlink行

<% foreach ( var item in Model) { %>
   <% Html.ActionLink (item.Name, "Profile", new { id = item.Id } )%>
<% } %>

它产生这个URL,(如果item.Id是1):

http://localhost:1111/company/profile/1

是否可以生成url / route(基本上使用item.Name而不是Id:

http://localhost:1111/company/profile/nameofcompany1

我真的不知道如何处理这个路由。如果我应该更改控制器的global.asax上的路由。

欢迎您的想法。

谢谢!

-G

1 个答案:

答案 0 :(得分:2)

不确定

<% Html.ActionLink (item.Name, "Profile", new { name = item.Name } )%>

现在当然这假设您修改了路由定义并将id令牌替换为name,并且还通过id替换控制器操作中的name操作参数

话虽如此,这些网址的用处似乎非常有限。如果您有2个同名商品怎么办?我建议您始终使用ID以便以独特的方式识别您的商品。如果你想在这个网址中有一些名字,请举例说明如何在StackOverflow上实现网址:他们使用问题ID,并附加一个slug(不是名称,它是一个过滤的名称,因为事情很快就会失控如果您的名字包含一些特殊字符,请在网址的末尾。