orchardcore-admin-index-views
Skill8.2k starsChanged 15 days agoBSD-3-ClauseView on GitHub
Builds OrchardCore admin index (list) pages with the AdminList shape and the admin-list tag helpers — view-declared columns, row display drivers placing shapes for both the SummaryAdmin (List) and SummaryAdminGrid (Grid) display types, column providers, row actions, toolbar, search, pager and per-list alternates. Use for every new admin page that lists items, when converting a hand-written admin listing, adding or reordering columns of an admin list, extending another module's list, or changing how its rows and actions render.
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 3 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Every admin page that lists items (an "index" page: content items, users, queries, workflows, ...) renders its items through the shared …
- Distinctive: line 26
Do not add column or cell drivers, column metadata classes, or build both representations of a row.
- Distinctive: line 81
Every visible piece of a row (checkbox, title, badges, dates, buttons, menu items) is its own shape in a zone.
- Very specific: line 90
Do not use editor |Column groupings for cells.
- Very specific: line 155
Import the tag helpers once per module, in Views/_ViewImports.cshtml:
- Very specific: line 196
Use the shared bulk-select-list and list-search-filter components, wired by one small module per page (Assets/ts/*.ts), and keep the …
- Very specific: line 253
Add the page's URL to _lists in test/OrchardCore.Tests.Functional/Tests/Cms/AdminListLayoutTests.cs when the Blog recipe enables its …
- Distinctive: line 256
Check the page in both layouts and both actions layouts (Buttons and Menu), with rows and without, and in a narrow window, where the grid …
- Very specific: line 258
Add the list to the table of lists in src/docs/reference/modules/Admin/README.md.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
OrchardCore Admin Index Views
Every admin page that lists items (an "index" page: content items, users, queries, workflows, ...) renders its
items through the shared AdminList shape. Never hand-write a <ul class="list-group">, a <table>, a toolbar,
a select-all checkbox, an item count, an empty state or a pager for an admin listing: the list renders all of
them, in the List or Grid layout the site and the user choose.
Ownership
| Layer | Responsibility |
| Controller | Query the raw items and supply an AdminListContext<TModel> with the typed Source, pager, search, toolbar and other region shapes. Never build the list shape or the row shapes. |
| View | Declare the list name, the grid columns, the CSS classes, the empty message and other presentation properties with <admin-list>, inside the page's form. |
| Row display driver | Return ordinary IDisplayResult shapes, each with a SummaryAdmin location (List) and a SummaryAdminGrid location (Grid). Set optional row classes/attributes on context.Shape. |
| Column provider | Optional. Extend the columns a view declares, e.g. from another module. |
AdminList | Resolve the layout at display time, build each row once with the display type of that layout, and render the whole listing. |
AdminListLayout has exactly two values: List renders each SummaryAdmin row shape whole (its row template
decides the look); Grid renders the SummaryAdminGrid row zones directly, one cell per column, each cell
rendering the zone named after its column. Layouts are not discovered or registered through templates.
Do not add column or cell drivers, column metadata classes, or build both representations of a row.
Decide
| Situation | Do this |
| New admin page listing items | Follow the workflow below. |
Rows already built with BuildDisplayAsync(..., "SummaryAdmin") and a hand-written list | Convert: move the row building out of the controller into AdminListContext<TModel>.Source, add the SummaryAdminGrid locations, then follow steps 3 to 6. |
Rows are hard-coded <li> markup in Razor | Write a display driver for the row model first, so a row is a zone-holding shape, then follow the workflow. |
| Adding a column to another module's list | Step 5, plus a SummaryAdminGrid location in your driver. |
| The page edits a single entity | Not this skill: use orchardcore-admin-edit-views. |
| The page arranges items rather than listing them (a tree, a canvas, a media library, widgets by zone) | Not this skill: such pages keep their own presentation. |
Workflow
1. Write the row display driver
A row is the shape IDisplayManager<TModel> builds for the item. Its type is typeof(TModel).Name plus the
display type, e.g. IndexProfile_SummaryAdmin, so register the driver against a domain model named exactly what
the shape should be called, never a *ViewModel. Register it in the Startup of the feature that owns the list:
a driver registered by a neighbouring feature leaves every row empty on a site where that feature is off.
Give every shape a location for each display type. The shape types and templates are the same; only the zone
differs, a row zone for List and the zone of a column for Grid:
public override Task<IDisplayResult> DisplayAsync(IndexProfile profile, BuildDisplayContext context)
{
// The row's classes and attributes are rendered on its row element, in both layouts.
if (context.DisplayType is OrchardCoreConstants.DisplayType.SummaryAdmin or OrchardCoreConstants.DisplayType.SummaryAdminGrid
&& context.Shape is Shape rowShape)
{
rowShape.Classes.Add("item");
rowShape.Attributes["data-filter-value"] = profile.Name?.ToLowerInvariant() ?? string.Empty;
}
return CombineAsync(
View("IndexProfile_Checkbox_SummaryAdmin", profile)
.Location(OrchardCoreConstants.DisplayType.SummaryAdmin, "Checkbox:1")
.Location(OrchardCoreConstants.DisplayType.SummaryAdminGrid, "Select:1"),
View("IndexProfile_Fields_SummaryAdmin", profile)
.Location(OrchardCoreConstants.DisplayType.SummaryAdmin, "Content:1")
.Location(OrchardCoreConstants.DisplayType.SummaryAdminGrid, "Name:1"),
View("IndexProfile_DefaultTags_SummaryAdmin", profile)
.Location(OrchardCoreConstants.DisplayType.SummaryAdmin, "Tags:5")
.Location(OrchardCoreConstants.DisplayType.SummaryAdminGrid, "Source:5"),
View("IndexProfile_Buttons_SummaryAdmin", profile)
.Location(OrchardCoreConstants.DisplayType.SummaryAdmin, "Actions:5")
.Location(OrchardCoreConstants.DisplayType.SummaryAdminGrid, "Actions:5"),
View("IndexProfile_ActionsMenuItems_SummaryAdmin", profile)
.Location(OrchardCoreConstants.DisplayType.SummaryAdmin, "ActionsMenu:5")
.Location(OrchardCoreConstants.DisplayType.SummaryAdminGrid, "ActionsMenu:5"));
}- Every visible piece of a row (checkbox, title, badges, dates, buttons, menu items) is its own shape in a zone. Anything hard-coded in the row template is missing from the grid.
- A location without a display type,
.Location("Tags:5"), applies to both display types, so in the grid the shape lands in aTagszone no column renders. Always pair aSummaryAdminlocation with aSummaryAdminGridone, unless the zone name is also a column name (e.g.Actions). - Display types do not inherit placement: a shape placed only for
SummaryAdmin, by a driver or byplacement.json, does not appear in the grid. A grid-only shape declares only aSummaryAdminGridlocation. placement.jsonrules filtered by"displayType": "SummaryAdminGrid"move a shape to another column zone (Source:10), hide it (-), change its template or add wrappers and alternates.- Do not use editor
|Columngroupings for cells.
2. Write the row template for the List layout
{Model}.SummaryAdmin.cshtml renders the zones of the row; the grid does not use it. Every shipped row has the
same structure, so the lists look alike:
<div class="row g-0 align-items-center">
<div class="col">
<div class="title d-flex align-items-center">
@* Checkbox, then <div class="summary d-flex flex-column flex-md-row list-item-search-text"> with Content, Tags, Meta *@
</div>
@if (Model.Description != null)
{
@await DisplayAsync(Model.Description)
}
</div>
<div class="col-auto d-flex justify-content-end ps-2">
@await DisplayAsync(await Factory.CreateAdminListActionsAsync((IShape)Model))
</div>
</div>| Zone | Renders as | Never |
Content | The title, a plain link to the edit page | A heading (<h5>) |
Tags, Meta | <span class="badge ta-badge fw-normal"> per fact, leading icon, title tooltip | Plain text or a <span class="hint"> |
Description | <div class="admin-list-secondary">, its own line under the title | A second full-width row running under the actions |
Actions, ActionsMenu | Through AdminListActions (CreateAdminListActionsAsync), so the Buttons/Menu setting applies | A hand-written button group, or ActionsMenu items wrapped in <li> |
3. Supply the items from the controller
model.List = new AdminListContext<IndexProfile>
{
Source = items,
Pager = pagerShape,
};The view model exposes public AdminListContext List { get; set; }. AdminListContext<TModel> sets ItemType
and exposes a typed IEnumerable<TModel> Source; its generic argument can select a registered base/interface
display manager, even for an empty collection of derived items. Items must be non-null instances of that type.
The list invokes the display manager after resolving its layout, so the controller has no row-rendering
dependencies and never builds rows, row callbacks or prebuilt shapes.
The default IAdminListItemDisplayManager<TModel> adapter calls IDisplayManager<TModel>. Register a closed
adapter for a specialized pipeline, e.g. content items use IContentItemDisplayManager.
Other context properties, all optional:
Header: an options editor shape (SummaryandActionszones), as the content items and users pass.Toolbar: a toolbar shape of the page's own. Otherwise the list buildsAdminListToolbarfrom the rows, the pager,BulkActions,ShowSelectAllandToolbarActions(a shape at its end, e.g. filters).ShowToolbar = falseomits it.Search,Actions: the search bar (e.g. theAdminListSearchshape) and the page buttons, in the action bar.PageSize: a separate page size selector; setShowPageSizeSelector = falseon the pager when passing it.Data: what a column provider may need, e.g. the content types the listing is filtered by.Layout: forces a layout, only when the page can be rendered one way, e.g. while its rows are dragged.ShowLayoutSelector = false: for a page that renders several lists or places one selector itself, by creating anAdminListLayoutSelectorshape with the sharedListName.
4. Render the list in the view
Import the tag helpers once per module, in Views/_ViewImports.cshtml:
@using OrchardCore.Admin
@addTagHelper *, OrchardCore.Admin.AbstractionsThe view keeps the form, its hidden inputs and the action bar, and renders the list with <admin-list>:
<form asp-action="Index" method="post" class="no-multisubmit bulk-select-list"
data-checkbox-name="itemIds" data-bulk-action-name="Options.BulkAction" data-selected-text="@T["selected"]">
<input type="submit" name="submit.Filter" id="submitFilter" class="visually-hidden" />
<input asp-for="Options.BulkAction" type="hidden" />
<input type="submit" name="submit.BulkAction" class="visually-hidden" />
<admin-list name="Indexes" context="Model.List"
bulk-actions="Model.Options.BulkActions"
empty-message="@T["<strong>Nothing here!</strong> There are no indexes at the moment."]">
<admin-list-list item-css-class="list-group-item" />
<admin-list-grid>
<admin-list-column type="Select" />
<admin-list-column name="Name" title="@T["Name"]" position="20" />
<admin-list-column name="Source" title="@T["Source"]" position="30" width="auto" />
<admin-list-column type="Actions" title="@T["Actions"]" />
</admin-list-grid>
</admin-list>
</form>nameandcontextare both required. The name identifies the list for column providers, the user's layout choice and the alternates. Use a string literal when only the view uses it; keep a module constant when it is reused, e.g.ContentsAdminList.Name, and do not create a holder class for a single use.- The tag also takes
show-toolbar,show-select-all,show-layout-selector,layout,item-css-class,empty-message,bulk-actions, androws-*attributes (orrows-attributes) for the rows container, e.g.rows-idfor a sortable list. admin-list-listandadmin-list-gridconfigure their layout'srows-classanditem-css-classwithout forcing it. Each can be declared once. List item classes replace the default; grid item classes are added to the required grid row class. Children emit no HTML.- The hidden
submit.Filterbutton stays first in the form: Enter in the search box triggers it. The search is an input group ending with a magnifying-glass button, never an icon inside the input. - Use the shared
bulk-select-listandlist-search-filtercomponents, wired by one small module per page (Assets/ts/*.ts), and keep theselect-all,items,selected-itemsandactionsids the toolbar renders.
5. Declare the grid columns
Each <admin-list-column> renders the row zone named after it; zones="A B" renders several named zones instead.
A zone no column renders is omitted from the grid.
| Attribute | Meaning |
type | Select (the Select zone, at position 10) or Actions (the Actions and ActionsMenu zones, at position end); omit for a regular column. A preset keeps its defaults unless overridden. |
name | Required for a regular column, unique ignoring case; also the default zone and the admin-list-column-{name} CSS class. |
title | Localized header text, e.g. @T["Name"]; it also labels the cells when a narrow list stacks them. |
position | Placement syntax (10, 25, end); columns are sorted by it. |
width | Any CSS width, or auto to hug the content. No width shares the remaining space. |
alignment, no-wrap, css-class | Cell presentation. |
To change the columns of another module's list, implement IAdminListColumnsProvider:
public sealed class CultureColumnsProvider : IAdminListColumnsProvider
{
private readonly IStringLocalizer S;
public CultureColumnsProvider(IStringLocalizer<CultureColumnsProvider> stringLocalizer)
{
S = stringLocalizer;
}
public Task PopulateAsync(AdminListColumnsContext context)
{
// Between "Title" (20) and "Type" (30), whatever order the providers run in.
context.Columns.Add(new AdminListColumn { Name = "Culture", Position = "25", Title = S["Culture"], Width = AdminListColumn.AutoWidth });
return Task.CompletedTask;
}
}services.AddAdminListColumnsProvider<CultureColumnsProvider>(ContentsAdminList.Name);- Registered with a list name, a provider is only created and run for that list (keyed DI with an
AdminListColumnsProviderKey; names are case-sensitive). Several providers can target a list, and a provider can target several lists. Duplicate registrations are ignored. - Without a name,
AddAdminListColumnsProvider<TProvider>()registers a global provider for every list. Global providers run first, then the providers of the list, each group in feature dependency order. A global provider must tolerate different column sets: checkcontext.Find(name)before changing an optional column. context.Columns.Add(...),context.Find(name)andcontext.Remove(name)change the columns.context.Data,TryGetData<T>()andGetData<T>()read what the page passed, e.g.ContentsAdminList.ContentTypesKeyandContentsAdminList.StereotypesKey.- A provider never builds cells: the content of its column comes from a display driver placing a shape in the
zone of that column for
SummaryAdminGrid.
6. Test and document it
- Add the page's URL to
_listsintest/OrchardCore.Tests.Functional/Tests/Cms/AdminListLayoutTests.cswhen the Blog recipe enables its feature (add an optional-list test otherwise). The test renders every list in the grid and fails when a column renders nothing on any row, which catches a shape missing itsSummaryAdminGridlocation. - Check the page in both layouts and both actions layouts (Buttons and Menu), with rows and without, and in a narrow window, where the grid stacks its cells.
- Add the list to the table of lists in
src/docs/reference/modules/Admin/README.md.
Regions and properties of the shape
Rows and regions inherit the list name and layout automatically, so their alternates work without a page passing
them. Rows is output built during display, never an input; DisplayType is the resolved row display type.
Custom AdminListCell templates receive Row and Column. The Actions cell renders the row's Actions and
ActionsMenu zones through AdminListActions; moving an action to another zone removes it from that cell.
Alternates
| Shape | Alternates, least to most specific |
AdminList | AdminList__{Layout}, AdminList__{Name}, AdminList__{Name}__{Layout} |
AdminListCell | AdminListCell__{Column}, AdminListCell__{Name}__{Column} |
AdminListActions | AdminListActions__{Layout}, AdminListActions__{Name}, AdminListActions__{Name}__{Layout}, where {Layout} is Buttons or Menu |
AdminListToolbar, AdminListSearch | __{Layout}, __{Name}, __{Name}__{Layout} |
AdminListActionsLayout has exactly two values, Buttons and Menu; configuration and the nullable site
settings use the enum. Keep templates and alternates overridable, but do not add option shapes or custom modes.
Gotchas
- Never name the rows
Items:Shapealready exposesItems, its child shapes. - A location without a display type does not reach the grid column (step 1). An empty grid column is the symptom.
- Per-type row templates only apply to the List layout:
Content-BlogPost.SummaryAdmin.cshtmldoes not affect the grid; customise it withSummaryAdminGridplacement orAdminListCell-{List}-{Column}.cshtml. - Never wrap
ActionsMenuitems in<li>: the dropdown sits inside the<li>of a List row, and the parser hoists a nested<li>out of it, so the menu renders empty and stray links appear under the list. - No viewport-based classes such as
d-md-nonein list Razor: the grid stacks with a container query on the list itself (_admin-list.scss), because the sidebar makes the viewport a poor proxy for the list width. - A sortable list drags the rows, never their container: in the grid the rows container is
display: contents. Mark it withrows-*attributes, and send SortableJSoldDraggableIndex/newDraggableIndex, which count only the rows. - Rows are built while the view renders, from the
AdminListdisplaying event: a driver's queries and errors happen during rendering, not in the controller.
References
references/worked-example.md: the Indexes page, driver, controller and view.src/docs/reference/modules/Admin/README.md: the user and developer documentation of admin lists.src/OrchardCore.Modules/OrchardCore.Admin/Views/AdminList*.cshtml: the layout, cell, actions and toolbar templates.src/OrchardCore.Themes/TheAdmin/Assets/scss/components/_admin-list.scss: the layout CSS and its container queries.test/OrchardCore.Tests.Functional/Tests/Cms/AdminListLayoutTests.cs: renders every list in the grid.
Trending
Steady talk.about the whole repository
Who's talking about OrchardCMS/OrchardCore
- simple-icons/simple-icons“Request: Orchard Core”GitHub · Dec 4, 2025 · 11 reactions
- dotnet/vscode-csharp“Intellisense really slow and taking lots of memory”GitHub · Sep 23, 2020 · 7 reactions
- dependabot/dependabot-core“Provide details for `update_not_possible`”GitHub · Oct 4, 2024 · 6 reactions
- jaredpalmer/formik“Establishing Issue Organization Guidelines”GitHub · May 20, 2019 · 6 reactions
- Azure/Azurite“ADLS Gen 2”GitHub · Mar 17, 2026 · 5 reactions
The biggest 5 of 67 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 67
Talked about on GitHub, Stack Overflow and Bluesky (67 times).
On GitHub · 50
- Dec 4, 2025Request: Orchard Core — simple-icons/simple-icons11 reactions · 5 comments
- Sep 23, 2020Intellisense really slow and taking lots of memory — dotnet/vscode-csharp7 reactions · 4 comments
- Oct 4, 2024Provide details for `update_not_possible` — dependabot/dependabot-core6 reactions · 8 comments
- May 20, 2019Establishing Issue Organization Guidelines — jaredpalmer/formik6 reactions · 13 comments
- Mar 17, 2026ADLS Gen 2 — Azure/Azurite5 reactions · 27 comments
45 more on GitHub
- Nov 23, 2021Stop using anonymous functions in ResolverUtility.FindLibraryByVersionAsync to reduce memory allocations — NuGet/NuGet.Client4 reactions
- Feb 12, 2026Unexpected CA1873 warnings since 10.0.103 — dotnet/sdk3 reactions · 9 comments
- Mar 27, 2025Some projects need to add <InterceptorsNamespaces> with the latest aspnet builds — dotnet/aspnetcore3 reactions · 8 comments
- Aug 17, 2023Call AddMetrics inside AddRouting — dotnet/aspnetcore2 reactions · 3 comments
- Jan 25, 2021Azure SignalR SDK is not working within Orchard Core Module — Azure/azure-signalr2 reactions · 1 comment
- Jun 3, 2026AppHost crashes in Visual Studio when a browser file picker opens and launchBrowser is enabled — microsoft/aspire1 reaction · 2 comments
- Apr 8, 2026User Phone number, VAT and IsCorporation (OCC-437) — OrchardCMS/OrchardCore.Commerce1 reaction · 2 comments
- Dec 6, 2022Breaking changes in OpenIddict 4.0 impacting how URIs are handled — openiddict/openiddict-core1 reaction · 10 comments
- Oct 17, 2022Custom logging instead of NLog-based one (OSOE-402) — Lombiq/UI-Testing-Toolbox1 reaction · 8 comments
- Feb 15, 2022Sample project (OSOE-77) — Lombiq/Orchard-Chart.js1 reaction
- Aug 23, 2021Reduce memory allocations by 13MB while opening install packages tab in solution level PM UI for OrchardCore — NuGet/NuGet.Clientsays it tested it1 reaction
- Apr 29, 2021Cache image reponses are not disposed — SixLabors/ImageSharp.Web1 reaction · 3 comments
- Jan 16, 2021Shape tracing doesn't display wrappers (OSOE-340) — Lombiq/Helpful-Extensions1 reaction · 1 comment
- Sep 23, 2020Comments Module — StatCan/StatCan.OrchardCore1 reaction · 4 comments
- Aug 17, 2020PageLoaderMatcherPolicy missing check of candidate validity — dotnet/aspnetcore1 reaction · 1 comment
- Aug 21, 2019Don't reuse dirty sessions — sebastienros/yessql1 reaction
- Jun 5, 2018Orchard Core support — bleroy/Nwazet.Commerce1 reaction · 20 comments
- Dec 8, 2017ResolvePackageFileConflicts performance enhancements — dotnet/sdk1 reaction · 1 comment
- Oct 28, 2026Show a breadcrumb back to listable content items — JohnyKid123/OrchardCore0 reactions
- May 1, 2026Monthly community metrics report for 2026-04-01..2026-04-30 — marwenbs99/CMS_CORE0 reactions
- Apr 11, 2026deps: Bump Azure.Storage.Blobs and 16 others — blakecypher/Compost0 reactions · 1 comment
- Nov 1, 2025Monthly community metrics report for 2025-10-01..2025-10-31 — kiranvattikuti146/NUGET-MAIN-WORKFLOW0 reactions
- May 7, 2025chore(deps): update dependency orchardcore.logging.nlog to v2 — renovate-reproductions/355880 reactions
- May 4, 2025chore(deps): update dependency orchardcore.logging.nlog to v2 — Lombiq/renovate-35588-repro0 reactions
- Jan 10, 2024How to contributions by bots? — microsoft/ContributorLicenseAgreement0 reactions · 3 comments
- Jul 16, 2023Bump OrchardCore.Application.Cms.Targets from 1.0.0-beta1-3667 to 1.2.2 in /IntheTrees — kwe/IntheTrees0 reactions
- Apr 14, 2023Bump OrchardCore.Localization.Core from 1.4.0 to 1.6.0 — I-A-Software-Development/huggingface-service0 reactions
- Apr 14, 2023Bump OrchardCore.Localization.Core from 1.4.0 to 1.6.0 — mebrahimian/DotNetWebApi0 reactions
- Apr 14, 2023Bump OrchardCore.Localization.Core from 1.4.0 to 1.6.0 — irene-ortiz/NewVortex0 reactions
- Nov 21, 2022Bump OrchardCore.Localization.Core from 1.4.0 to 1.5.0 — amitrawat-kutirmobility/api0 reactions
- Nov 9, 2022Bump OrchardCore.Localization.Core from 1.3.0 to 1.5.0 — bizcad/MyFullStackHero0 reactions
- Nov 8, 2022Bump OrchardCore.Localization.Core from 1.3.0 to 1.5.0 — yonasayfu/CleanBoiler0 reactions
- Nov 8, 2022Bump OrchardCore.Localization.Core from 1.3.0 to 1.5.0 — minhkiet/WebKT0 reactions
- Nov 7, 2022Bump OrchardCore.Localization.Core from 1.3.0 to 1.5.0 — waelalsayed07/demo0 reactions
- Nov 7, 2022Bump OrchardCore.Localization.Core from 1.3.0 to 1.5.0 — ThanhNT2k3/boilerplate0 reactions
- Oct 4, 2022Bump OrchardCore from 1.3.0 to 1.4.0 in /src/S2fx.Framework — s2fx/s2fx-core-old0 reactions
- Oct 4, 2022Bump OrchardCore from 1.3.0 to 1.4.0 in /Lombiq.Tests.UI.AppExtensions — Finitive-LLC/UI-Testing-Toolbox0 reactions
- May 18, 2022Bump OrchardCore.Application.Cms.Targets from 1.1.0 to 1.2.2 in /src/MyCms — antosubash/OrchardContentWithCode0 reactions
- Jan 21, 2022Bump OrchardCore.Application.Cms.Targets from 1.0.0-rc1-11653 to 1.2.2 in /ModernBusiness.App — OrchardSkills/ModernBusiness.OC.RazorPages0 reactions
- Jan 21, 2022Bump OrchardCore.Application.Cms.Targets from 1.1.0 to 1.2.2 in /MyCms — antosubash/OrchardCoreContentWithCode0 reactions
- Jan 21, 2022Bump OrchardCore.Application.Cms.Targets from 1.0.0-rc1-12552 to 1.2.2 in /samples/Cms.Web — miguelhasse/OrchardCoreContrib0 reactions
- Jan 21, 2022Bump OrchardCore.Application.Cms.Targets from 1.0.0-rc1-12186 to 1.2.2 in /OrchardSkills.OrchardCore.OrchardCMS — OrchardSkills/OrchardSkills.OrchardCore.SignalR0 reactions
- Jan 21, 2022Bump OrchardCore.Application.Cms.Targets from 1.1.0 to 1.2.2 in /orchard/MyCms — antosubash/OrchardWithFlutter0 reactions
- Jan 21, 2022Bump OrchardCore.Application.Cms.Targets from 1.0.0-rc1-12449 to 1.2.2 in /VizaviCMS — niknikita/VizaviCMS0 reactions
- Jan 21, 2022Bump OrchardCore.Application.Cms.Targets from 1.0.0-rc2-13450 to 1.2.2 in /src/CSM.Partners.Web — vinodharajan/OrchardCMS0 reactions
On Stack Overflow · 15
- Dec 17, 2019The type [some view] conflicts with the imported type [default view] (CS0436)5 votes
- Apr 5, 2019Ability to use multiple po files for localization asp.net core 2.23 votes
- Nov 4, 2022ASP.NET Localization with singular and plural1 vote
- May 12, 2022.NET Core API with GraphQL and dynamic Dictionaries1 vote
- Jun 9, 2020Is there any way to manage the shape templates other then the default location (Such as placing them inside sub-folders)?1 vote
10 more on Stack Overflow
- Feb 21, 2020custom properties within token1 vote
- Sep 3, 2018How to localize data annotations attributes using orchard .po files localization in asp.net core?1 vote
- May 24, 2023Select n items of a ContentType in OrchardCore randomly using lucene0 votes
- Dec 20, 2022How to deploy Orchard CMS in Windows Azure?0 votes
- Dec 6, 2022OrchardCore: Profile menu does not change after publish0 votes
- May 5, 2021Orchard Core "umlaut" (German Character) Problem0 votes
- Feb 20, 2020Orchard Core CMS - Content Versioning, Scheduling and Audit Trail0 votes
- Jan 5, 2019Why running a console app in VS for Mac also starts a browser tab to access a ASP.Net application0 votes · 1 answer
- Jun 14, 2018.NET Core 2's data-annotation localization not switching when using @Localizer0 votes
- Apr 16, 2018Access the return value from Orchard WebRequest workflow activity0 votes
On Bluesky · 2
- Jul 28, 2025In this test, a freeze is arbitrarily defined as "VS didn't process user input during 100 ms", which is a very aggressive threshold. The… — @kevingosse.net2 likes and reposts · 1 reply
- Nov 28, 2024Explore Orchard Core 🌱 "An open-source modular and multi-tenant application framework built with ASP.NET Core, with a CMS on top."… — @gurubase.bsky.social1 likes and repost · 1 reply
In this repository18 other files it gives its agents.
- AGENTS.mdAGENTS.md
- orchardcore-admin-edit-viewsSkill
- orchardcore-asset-managerSkill
- orchardcore-breadcrumbsSkill
- orchardcore-data-migrationSkill
- orchardcore-display-managementSkill
- orchardcore-docs-writerSkill
- orchardcore-localizationSkill
- orchardcore-module-creatorSkill
- orchardcore-nswag-regenerateSkill
- orchardcore-query-indexingSkill
- orchardcore-recipe-creatorSkill
- orchardcore-tenantsSkill
- orchardcore-testerSkill
- orchardcore-theme-creatorSkill
- orchardcore-unit-testSkill
- orchardcore-video-producerSkill
- orchardcore-workflow-activitySkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

