Параметры MVC ActionLink изменить URL-адрес маршрута - PullRequest
0 голосов
/ 06 сентября 2011

поэтому у меня есть строка 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 / маршрут как (в основном используя item.Name вместо Id:

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

не совсем знал, как обращаться с маршрутизацией этого ... если я должен изменить маршрутизацию в global.asax для контроллера.

мысли приветствуются.

Спасибо!

-G

1 Ответ

2 голосов
/ 06 сентября 2011

Конечно:

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

Теперь, конечно, предполагается, что вы изменили определения маршрута и заменили маркер id на name, а также заменили параметр действия id в действиях вашего контроллера наname.

При этом полезность таких URL-адресов кажется мне довольно ограниченной.Что делать, если у вас есть 2 предмета с одинаковым именем?Я бы порекомендовал вам всегда использовать идентификаторы, чтобы идентифицировать ваши предметы уникальным способом.И если вы хотите, чтобы в этом URL-адресе было какое-то имя, возьмите, например, как URL реализованы в StackOverflow: они используют идентификатор вопроса и добавляют слаг (не имя, это отфильтрованное имя, потому что вещи могут быстро выйти из-под контроля).если ваши имена содержат некоторые специальные символы) в конце URL.

...