Asp.net mvc mvc actionlink参数更改路由url

Asp.net mvc mvc actionlink参数更改路由url,asp.net-mvc,model-view-controller,asp.net-mvc-3,c#-4.0,asp.net-mvc-routing,Asp.net Mvc,Model View Controller,Asp.net Mvc 3,C# 4.0,Asp.net Mvc Routing,所以我有一个关于我行动的行动链接 <% foreach ( var item in Model) { %> <% Html.ActionLink (item.Name, "Profile", new { id = item.Id } )%> <% } %> 是否可以使用item.Name而不是Id生成url/路由: http://localhost:1111/company/profile/nameofcompany1 我真的不确定如何处理此的路由.

所以我有一个关于我行动的行动链接

<% foreach ( var item in Model) { %>
   <% Html.ActionLink (item.Name, "Profile", new { id = item.Id } )%>
<% } %>
是否可以使用item.Name而不是Id生成url/路由:

http://localhost:1111/company/profile/nameofcompany1
我真的不确定如何处理此的路由..如果我应该更改控制器的global.asax上的路由

思想是受欢迎的

谢谢

-G

当然可以:

<% Html.ActionLink (item.Name, "Profile", new { name = item.Name } )%>
当然,现在假设您修改了路由定义,并按名称替换id标记,还按名称替换控制器操作中的id操作参数


话虽如此,这些URL的用处对我来说似乎非常有限。如果您有两个同名的项目怎么办?我建议您始终使用ID,以便以独特的方式标识您的项目。如果你想在这个url中有一些名字,举个例子,url是如何在StackOverflow上实现的:它们使用问题id,并附加一个slug而不是名称,这是一个经过筛选的名称,因为如果您的名称在url末尾包含一些特殊字符,事情会很快失控。

我尽量避免使用该项目。名称的原因与您声明的重复名称和特殊字符相同,是的,这就是我要说的。我在想,坚持使用id,然后在路由上附加一个slug来显示名称。我只是想知道是否有一种方法可以使用id生成url,但会显示名称。我猜我把它弄得太复杂了,用户很难理解..你想得到stackoverflow的链接吗。,http://localhost:1111/company/profile/1/mycompanyname? 如果是这样,则需要另一种解决方案。
<% Html.ActionLink (item.Name, "Profile", new { name = item.Name } )%>