Class UserViewListViewModel
- Namespace
- Dynamicweb.Users.Frontend.UserView
- Assembly
- Dynamicweb.Users.dll
View model for the UserView list template.
public sealed class UserViewListViewModel : UserListViewModel
- Inheritance
-
UserViewListViewModel
- Inherited Members
- Extension Methods
Examples
Razor list template usage:
@inherits ViewModelTemplate<Dynamicweb.Users.Frontend.UserView.UserViewListViewModel> @using Dynamicweb.Users.Frontend.UserView
@{ var pageId = Pageview.Page.ID; }
@if (Model.Users?.Any() == true) { <table class="table"> <thead> <tr> <th>Id</th><th>Name</th><th>Customer no.</th><th>Active</th><th></th> </tr> </thead> <tbody> @foreach (var u in Model.Users) { var detailLink = $"/?ID={pageId}&Secret={u.UniqueId}"; var deletePost = $"/?ID={pageId}&Secret={u.UniqueId}&Cmd=DeleteUser"; var togglePost = $"/?ID={pageId}&Secret={u.UniqueId}&Cmd=ChangeActiveStatus"; var resendPost = $"/?ID={pageId}&Secret={u.UniqueId}&Cmd=ResendInvitation"; var editProfile = !string.IsNullOrEmpty(Model.EditUserLink) ? $"{Model.EditUserLink}&Secret={u.UniqueId}" : null; <tr> <td><a href="@detailLink">@u.ID</a></td> <td><a href="@detailLink">@u.Name</a></td> <td>@u.CustomerNumber</td> <td>@(u.Active ? "Yes" : "No")</td> <td class="actions"> @if (!string.IsNullOrEmpty(editProfile)) { <a href="@editProfile">Edit</a> } <form method="post" action="@togglePost" class="inline"><button type="submit">@(u.Active ? "Deactivate" : "Activate")</button></form> <form method="post" action="@resendPost" class="inline"><button type="submit">Resend invitation</button></form> <form method="post" action="@deletePost" class="inline" onsubmit="return confirm("Delete this user?");"><button type="submit" class="link">Delete</button></form> </td> </tr> } </table> } else { <p>No users found.</p> }
@if (Model.PageCount > 1) { <nav class="pagination">Page @Model.CurrentPage of @Model.PageCount (Total: @Model.TotalCount)</nav> }
@if (Model.ResultType != UserViewResultType.None) { <p class="form-message">@Translate(Model.ResultType.ToString())</p> }
Remarks
This model is provided to Razor templates in /Templates/Users/UserView/List.
It contains the current page of users to render, paging metadata, the result of the most recent list action,
and optional links to your Edit/Create pages.
Templates typically iterate over Users to render a table and use
ResultType to show feedback after POST actions (delete/activate/resend).
When linking to a specific user’s page, include ?Secret={user.UniqueId} in the URL
(e.g., $"{EditUserLink}&Secret={u.UniqueId}" for the Edit page or
$"/?ID={pageId}&Secret={u.UniqueId}" for Detail).
Constructors
UserViewListViewModel(IEnumerable<UserViewModel>?)
View model for the UserView list template.
public UserViewListViewModel(IEnumerable<UserViewModel>? userList)
Parameters
userListIEnumerable<UserViewModel>
Examples
Razor list template usage:
@inherits ViewModelTemplate<Dynamicweb.Users.Frontend.UserView.UserViewListViewModel> @using Dynamicweb.Users.Frontend.UserView
@{ var pageId = Pageview.Page.ID; }
@if (Model.Users?.Any() == true) { <table class="table"> <thead> <tr> <th>Id</th><th>Name</th><th>Customer no.</th><th>Active</th><th></th> </tr> </thead> <tbody> @foreach (var u in Model.Users) { var detailLink = $"/?ID={pageId}&Secret={u.UniqueId}"; var deletePost = $"/?ID={pageId}&Secret={u.UniqueId}&Cmd=DeleteUser"; var togglePost = $"/?ID={pageId}&Secret={u.UniqueId}&Cmd=ChangeActiveStatus"; var resendPost = $"/?ID={pageId}&Secret={u.UniqueId}&Cmd=ResendInvitation"; var editProfile = !string.IsNullOrEmpty(Model.EditUserLink) ? $"{Model.EditUserLink}&Secret={u.UniqueId}" : null; <tr> <td><a href="@detailLink">@u.ID</a></td> <td><a href="@detailLink">@u.Name</a></td> <td>@u.CustomerNumber</td> <td>@(u.Active ? "Yes" : "No")</td> <td class="actions"> @if (!string.IsNullOrEmpty(editProfile)) { <a href="@editProfile">Edit</a> } <form method="post" action="@togglePost" class="inline"><button type="submit">@(u.Active ? "Deactivate" : "Activate")</button></form> <form method="post" action="@resendPost" class="inline"><button type="submit">Resend invitation</button></form> <form method="post" action="@deletePost" class="inline" onsubmit="return confirm("Delete this user?");"><button type="submit" class="link">Delete</button></form> </td> </tr> } </table> } else { <p>No users found.</p> }
@if (Model.PageCount > 1) { <nav class="pagination">Page @Model.CurrentPage of @Model.PageCount (Total: @Model.TotalCount)</nav> }
@if (Model.ResultType != UserViewResultType.None) { <p class="form-message">@Translate(Model.ResultType.ToString())</p> }
Remarks
This model is provided to Razor templates in /Templates/Users/UserView/List.
It contains the current page of users to render, paging metadata, the result of the most recent list action,
and optional links to your Edit/Create pages.
Templates typically iterate over Users to render a table and use
ResultType to show feedback after POST actions (delete/activate/resend).
When linking to a specific user’s page, include ?Secret={user.UniqueId} in the URL
(e.g., $"{EditUserLink}&Secret={u.UniqueId}" for the Edit page or
$"/?ID={pageId}&Secret={u.UniqueId}" for Detail).
- See Also
-
UserViewSettingsUserViewModelFactory
Properties
CreateUserLink
Gets or sets the resolved link to your “Create user” page.
public string? CreateUserLink { get; set; }
Property Value
EditUserLink
Gets or sets the resolved link to your “Edit user” page.
Append &Secret={user.UniqueId} to target a specific user.
public string? EditUserLink { get; set; }
Property Value
RedirectAfterImpersonation
Gets or sets the resolved URL to redirect to after impersonation.
public string? RedirectAfterImpersonation { get; set; }
Property Value
ResultType
Gets or sets the outcome of the most recent list action (delete/activate/resend).
public UserViewResultType ResultType { get; set; }