Я заполнил приложение MVC Music Store, и сейчас я делаю свои собственные модификации для практики, а также чтобы подготовить меня к выполнению аналогичных задач в моей работе.
То, что я сделал, - это создание представлениякоторый отображает текущий список пользователей.Я сделал это, так как хочу изменить пароли пользователей, если они их забудут.Вот отрывок из моего представления:
<% foreach (MembershipUser user in Model) { %>
<tr>
<td><%: Html.ActionLink(user.UserName, "changeUserPassword",
"StoreManager", new { username = user.UserName }) %></td>
<td><%: user.LastActivityDate %></td>
<td><%: user.IsLockedOut %></td>
</tr>
<% }%>
То, что я хочу знать, возможно ли передать имя пользователя через ссылку на действие, как я делал выше.Я зарегистрировал следующий маршрут в файле global.asax.cs, однако я не уверен, правильно ли я это сделал:
routes.MapRoute(
"AdminPassword", //Route name
"{controller}/{action}/{username}", //URL with parameters
new {
controller = "StoreManager",
action = "changeUserPassword",
username = UrlParameter.Optional
});
Вот мое действие GET:
public ActionResult changeUserPassword(string username)
{
ViewData["username"] = username;
return View();
}
Я отладил код и обнаружил, что ViewData ["username"] = username не заполняется, поэтому похоже, что либо я не зарегистрировал маршруты должным образом, либо я просто не могу передать имя пользователя с помощью actionlink, как у меня.
Буду признателен, если кто-нибудь укажет мне правильное направление.