UR.ANUS
Asp.net mvc framework
вернуться

Магдануров Гайдар Ильдарович

Шрифт:

(MembershipUserCollection)ViewData.Model) { %>

<tr>

<td><%= Html.ActionLink("Выбрать",

"Select",

new {userid = (Guid)user.ProviderUserKey}) %>

</td>

<td><%= Html.Encode(user.UserName) %></td>

<td><%= Html.Encode(user.Email) %></td>

<td><%= user.LastActivityDate %></td>

<td><%= user.IsApproved %></td>

<td><%= user.IsLockedOut %></td>

</tr>

<% } %>

</table>

</asp:Content>

Теперь мы можем запустить проект и посмотреть на результат работы. Для этого нам необходимо войти в систему под пользователем Admin и перейти по адресусайт"/Admin. Если вы все сделали правильно, то результатом будет примерно такой список пользователей — рис. 4.6.

Рис. 4.6. Список пользователей

Для завершения создания контроллера реализуем все остальные необходимые действия так, как показано в листинге 4.1.

Листинг 4.1. Действия контроллера AdminController

public ActionResult Select(Guid? userId)

{

if (!userId.HasValue)

throw new HttpException(404, "Пользователь не найден");

if (User.IsInRole("Administrators"))

{

MembershipProvider mp = Membership.Provider;

MembershipUser user = mp.GetUser(userId, false);

ViewData.Model = user;

return View ;

}

else

{

return RedirectToAction("Index", "Home");

}

}

public ActionResult Update(Guid? userId,

string email,

bool isApproved,

bool isLockedOut)

{

if (!userId.HasValue)

throw new HttpException(404, "Пользователь не найден");

if (User.IsInRole("Administrators"))

{

MembershipProvider mp = Membership.Provider;

MembershipUser user = mp.GetUser(userId, false);

user.Email = email; user.IsApproved = isApproved;

if (user.IsLockedOut && !isLockedOut)

user.UnlockUser;

mp.UpdateUser(user);

return RedirectToAction("Index");

}

else

{

return RedirectToAction("Index", "Home");

}

}

public ActionResult Delete(Guid? userId)

{

if (!userId.HasValue)

throw new HttpException(404, "Пользователь не найден");

if (User.IsInRole("Administrators"))

{

MembershipProvider mp = Membership.Provider;

MembershipUser user = mp.GetUser(userId, false);

mp.DeleteUser(user.UserName, true);

return RedirectToAction("Index");

}

else

{

return RedirectToAction("Index", "Home");

}

}

В листинге 4.1 определено три действия для отображения данных конкретного пользователя, удаления данных и сохранения новых данных. Обратите внимание, что действия Update и Delete не возвращают сопоставленного представления, а только перенаправляют запрос на вызов других действий с имеющимися представлениями. Только действие Select возвращает сопоставленное представление. Давайте создадим соответствующее представление для контроллера Admin, назвав его Select, и определим его следующим образом:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent"

runat="server">

<%=Html.ActionLink("Вернуться в список", "Index")%>

<% MembershipUser user = (MembershipUser) ViewData.Model; %>

<h1>Пользователь <%= Html.Encode(user.UserName) %></h1>

<% using (Html.BeginForm("Update", "Admin")) { %>

<%= Html.Hidden("userId", (Guid)user.ProviderUserKey) %>

<fieldset>

<legend>Данные</legend>

<label for="email">Email</label>

<%=Html.TextBox("email", user.Email)%>

<label for="isApproved"><%=Html.CheckBox("isApproved",

user.IsApproved)%>подтвержден</label>

<label for="isLockedOut"><%=Html.CheckBox("isLockedOut",

user.IsLockedOut)%>заблокирован</label>

</fieldset>

<input type="submit" value="Сохранить" />

  • Читать дальше
  • 1
  • ...
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • ...

UR.ANUS - русскоязычная библиотека для чтения онлайн. Здесь удобно открывать книги с телефона и ПК, возвращаться к сохраненной странице и держать любимые произведения под рукой. Материалы добавляются пользователями; если считаете, что ваши права нарушены, воспользуйтесь формой обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • support@anus.bid