Вопрос

У меня есть ссылка html.action, на которой я хочу отобразить ссылку на страницу профиля участника, например: http: / /somesite.com/members/ {имя пользователя}

При использовании следующей разметки

<%= Html.ActionLink(r.MemberName, "profile", new { MemberName = r.MemberName } )%>

Я получаю ссылку, которая выглядит следующим образом: http://somesite.com/members?MemberName= {имя пользователя}

Что мне нужно изменить в помощнике ActionLink, чтобы получить URL-адрес, подобный следующему:

http://somesite.com/members/ {имя пользователя}

Это было полезно?

Решение

Предполагая, что в ваших маршрутах токен имени пользователя {username}, как вы видите, попробуйте это:

<%= Html.ActionLink(r.MemberName, "profile", new { username = r.MemberName } )%>

Другие советы

Вы должны добавить маршрут, который отображает " / members / {MemberName} " перед другими маршрутами в таблице маршрутизации.

Спасибо за ваши ответы ... У меня не было моего маршрута, соответствующего имени значения.

Просто убедившись, что URL моего маршрута совпадает, он заработал.

Вот мой код ....

//Global.asax
routes.MapRoute(
    "Profile",
    "members/{membername}",
    new { controller = "Members", action = "Profile", memberName = "" }
);

//In the Controller
public ActionResult Profile(string memberName)
{
  return View();
}

//My Action Link
<%= Html.ActionLink(r.MemberName, "profile", new { memberName = r.MemberName })%>

Еще раз спасибо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top