Html.ActionLink в значении объекта MVC asp.net в неправильном формате

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

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

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

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

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

http://somesite.com/members/ {username}


person Jeremy    schedule 23.01.2009    source источник


Ответы (3)


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

<%= Html.ActionLink(r.MemberName, "profile", new { username = r.MemberName } )%>
person John Sheehan    schedule 23.01.2009

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

person mmx    schedule 23.01.2009

Спасибо за оба ответа ... Мой маршрут не соответствует имени значения.

Просто убедитесь, что мой 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 })%>

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

person Jeremy    schedule 23.01.2009