Table of Contents

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&lt;/a&gt;&lt;/td&gt; <td><a href="@detailLink">@u.Name&lt;/a&gt;&lt;/td&gt; <td>@u.CustomerNumber&lt;/td&gt; <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)&lt;/nav&gt; }

@if (Model.ResultType != UserViewResultType.None) { <p class="form-message">@Translate(Model.ResultType.ToString())&lt;/p&gt; }

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

userList IEnumerable<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&lt;/a&gt;&lt;/td&gt; <td><a href="@detailLink">@u.Name&lt;/a&gt;&lt;/td&gt; <td>@u.CustomerNumber&lt;/td&gt; <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)&lt;/nav&gt; }

@if (Model.ResultType != UserViewResultType.None) { <p class="form-message">@Translate(Model.ResultType.ToString())&lt;/p&gt; }

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
UserViewSettings
UserViewModelFactory

Properties

Gets or sets the resolved link to your “Create user” page.

public string? CreateUserLink { get; set; }

Property Value

string

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

string

RedirectAfterImpersonation

Gets or sets the resolved URL to redirect to after impersonation.

public string? RedirectAfterImpersonation { get; set; }

Property Value

string

ResultType

Gets or sets the outcome of the most recent list action (delete/activate/resend).

public UserViewResultType ResultType { get; set; }

Property Value

UserViewResultType

See Also

UserViewResultType
UserViewSettings
UserViewModelFactory
To top