[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Collapse]eXpressApp Framework
 [Expand]Fundamentals
 [Expand]Getting Started
 [Expand]Concepts
 [Expand]Design-Time Features
 [Expand]Deployment
 [Expand]Task-Based Help
  Frequently Asked Questions (FAQ)
 [Collapse]API Reference
  [Expand]DevExpress.EasyTest.Framework
  [Expand]DevExpress.ExpressApp
  [Expand]DevExpress.ExpressApp.Actions
  [Expand]DevExpress.ExpressApp.AuditTrail
  [Expand]DevExpress.ExpressApp.Chart
  [Expand]DevExpress.ExpressApp.Chart.Web
  [Expand]DevExpress.ExpressApp.Chart.Win
  [Expand]DevExpress.ExpressApp.CloneObject
  [Expand]DevExpress.ExpressApp.ConditionalAppearance
  [Expand]DevExpress.ExpressApp.Dashboards
  [Expand]DevExpress.ExpressApp.Dashboards.Web
  [Expand]DevExpress.ExpressApp.Dashboards.Win
  [Expand]DevExpress.ExpressApp.Data
  [Expand]DevExpress.ExpressApp.DC
  [Expand]DevExpress.ExpressApp.DC.ClassGeneration
  [Expand]DevExpress.ExpressApp.Editors
  [Expand]DevExpress.ExpressApp.EF
  [Expand]DevExpress.ExpressApp.EF.Utils
  [Expand]DevExpress.ExpressApp.FileAttachments.Web
  [Expand]DevExpress.ExpressApp.FileAttachments.Win
  [Expand]DevExpress.ExpressApp.Filtering
  [Expand]DevExpress.ExpressApp.HtmlPropertyEditor.Web
  [Expand]DevExpress.ExpressApp.HtmlPropertyEditor.Win
  [Expand]DevExpress.ExpressApp.Kpi
  [Expand]DevExpress.ExpressApp.Layout
  [Expand]DevExpress.ExpressApp.Maps.Mobile
  [Expand]DevExpress.ExpressApp.Maps.Mobile.Editors
  [Expand]DevExpress.ExpressApp.Maps.Web
  [Expand]DevExpress.ExpressApp.Maps.Web.Helpers
  [Expand]DevExpress.ExpressApp.MiddleTier
  [Expand]DevExpress.ExpressApp.Mobile
  [Expand]DevExpress.ExpressApp.Mobile.Editors
  [Expand]DevExpress.ExpressApp.Mobile.MobileModel
  [Expand]DevExpress.ExpressApp.Mobile.SystemModule
  [Expand]DevExpress.ExpressApp.Mobile.Templates
  [Expand]DevExpress.ExpressApp.Model
  [Expand]DevExpress.ExpressApp.Model.Core
  [Expand]DevExpress.ExpressApp.Model.NodeGenerators
  [Expand]DevExpress.ExpressApp.ModelEditor
  [Expand]DevExpress.ExpressApp.Notifications
  [Expand]DevExpress.ExpressApp.Notifications.Web
  [Expand]DevExpress.ExpressApp.Notifications.Win
  [Expand]DevExpress.ExpressApp.Office.Win
  [Expand]DevExpress.ExpressApp.PivotChart
  [Expand]DevExpress.ExpressApp.PivotChart.Web
  [Expand]DevExpress.ExpressApp.PivotChart.Win
  [Expand]DevExpress.ExpressApp.PivotGrid
  [Expand]DevExpress.ExpressApp.PivotGrid.Web
  [Expand]DevExpress.ExpressApp.PivotGrid.Win
  [Expand]DevExpress.ExpressApp.Reports
  [Expand]DevExpress.ExpressApp.Reports.Web
  [Expand]DevExpress.ExpressApp.Reports.Win
  [Expand]DevExpress.ExpressApp.ReportsV2
  [Expand]DevExpress.ExpressApp.ReportsV2.Mobile
  [Expand]DevExpress.ExpressApp.ReportsV2.Web
  [Expand]DevExpress.ExpressApp.ReportsV2.Win
  [Expand]DevExpress.ExpressApp.Scheduler
  [Expand]DevExpress.ExpressApp.Scheduler.Web
  [Expand]DevExpress.ExpressApp.Scheduler.Win
  [Expand]DevExpress.ExpressApp.ScriptRecorder
  [Expand]DevExpress.ExpressApp.ScriptRecorder.Web
  [Expand]DevExpress.ExpressApp.ScriptRecorder.Win
  [Expand]DevExpress.ExpressApp.Security
  [Expand]DevExpress.ExpressApp.Security.Adapters
  [Expand]DevExpress.ExpressApp.Security.ClientServer.Wcf
  [Expand]DevExpress.ExpressApp.Security.EF.Adapters
  [Expand]DevExpress.ExpressApp.Security.Strategy
  [Expand]DevExpress.ExpressApp.Security.Xpo.Adapters
  [Expand]DevExpress.ExpressApp.StateMachine
  [Expand]DevExpress.ExpressApp.SystemModule
  [Expand]DevExpress.ExpressApp.Templates
  [Expand]DevExpress.ExpressApp.Templates.ActionContainers
  [Expand]DevExpress.ExpressApp.TreeListEditors
  [Expand]DevExpress.ExpressApp.TreeListEditors.Web
  [Expand]DevExpress.ExpressApp.TreeListEditors.Win
  [Expand]DevExpress.ExpressApp.Updating
  [Expand]DevExpress.ExpressApp.Utils
  [Expand]DevExpress.ExpressApp.Validation
  [Expand]DevExpress.ExpressApp.Validation.Web
  [Expand]DevExpress.ExpressApp.Validation.Win
  [Expand]DevExpress.ExpressApp.ViewVariantsModule
  [Expand]DevExpress.ExpressApp.Web
  [Expand]DevExpress.ExpressApp.Web.Controls
  [Expand]DevExpress.ExpressApp.Web.Editors
  [Expand]DevExpress.ExpressApp.Web.Editors.ASPx
  [Expand]DevExpress.ExpressApp.Web.SystemModule
  [Expand]DevExpress.ExpressApp.Web.Templates
  [Expand]DevExpress.ExpressApp.Web.Utils
  [Expand]DevExpress.ExpressApp.Win
  [Expand]DevExpress.ExpressApp.Win.Core
  [Expand]DevExpress.ExpressApp.Win.Editors
  [Expand]DevExpress.ExpressApp.Win.Model
  [Expand]DevExpress.ExpressApp.Win.SystemModule
  [Expand]DevExpress.ExpressApp.Win.Templates
  [Expand]DevExpress.ExpressApp.Win.Templates.Navigation
  [Expand]DevExpress.ExpressApp.Win.Utils
  [Expand]DevExpress.ExpressApp.Workflow
  [Expand]DevExpress.ExpressApp.Workflow.Win
  [Expand]DevExpress.ExpressApp.Xpo
  [Expand]DevExpress.ExpressApp.Xpo.Utils
  [Collapse]DevExpress.Persistent.Base
   [Collapse]ActionAttribute Class
     ActionAttribute Members
    [Expand]ActionAttribute Constructor
    [Expand]ActionAttribute Properties
   [Expand]CaptionsForBoolValuesAttribute Class
   [Expand]CreatableItemAttribute Class
   [Expand]CurrentUserDisplayImageAttribute Class
   [Expand]CustomFormatObjectEventArgs Class
   [Expand]CustomGetValueEventArgs Class
   [Expand]DataSourceCriteriaAttribute Class
   [Expand]DataSourceCriteriaPropertyAttribute Class
   [Expand]DataSourcePropertyAttribute Class
    DataSourcePropertyIsNullMode Enumeration
   [Expand]DefaultClassOptionsAttribute Class
   [Expand]EditorAliasAttribute Class
    EmptyEntriesMode Enumeration
    ExpandObjectMembers Enumeration
   [Expand]ExpandObjectMembersAttribute Class
   [Expand]FileAttachmentAttribute Class
   [Expand]FileTypeFilterAttribute Class
   [Expand]FriendlyKeyPropertyAttribute Class
   [Expand]IAreaInfo Interface
   [Expand]IBaseMapsMarker Interface
   [Expand]IDashboardData Interface
   [Expand]IFileData Interface
   [Expand]ImageEditorAttribute Class
    ImageEditorMode Enumeration
   [Expand]ImageNameAttribute Class
   [Expand]ImagesForBoolValuesAttribute Class
    ImageSizeMode Enumeration
   [Expand]IMapsMarker Interface
   [Expand]ImmediatePostDataAttribute Class
   [Expand]IndexAttribute Class
   [Expand]IPermissionPolicyRole Interface
   [Expand]IPermissionPolicyRoleWithUsers Interface
   [Expand]IPermissionPolicyUser Interface
   [Expand]ISupportFullName Interface
   [Expand]IValueManager<ValueType> Interface
   [Expand]IValueManagerBase Interface
   [Expand]IVectorMapsMarker Interface
   [Expand]IVectorMapsPieMarker Interface
    LookupEditorMode Enumeration
   [Expand]LookupEditorModeAttribute Class
    MethodActionSelectionDependencyType Enumeration
   [Expand]NavigationItemAttribute Class
   [Expand]NonCloneableAttribute Class
   [Expand]NotClonedInfoAttribute Class
   [Expand]ObjectCaptionFormatAttribute Class
   [Expand]ObjectFormatter Class
    SecurityPermissionPolicy Enumeration
    SecurityPermissionState Enumeration
   [Expand]ToolTipAttribute Class
   [Expand]ValueManager Class
   [Expand]VisibleInDashboardsAttribute Class
   [Expand]VisibleInDetailViewAttribute Class
   [Expand]VisibleInListViewAttribute Class
   [Expand]VisibleInLookupListViewAttribute Class
   [Expand]VisibleInReportsAttribute Class
  [Expand]DevExpress.Persistent.Base.General
  [Expand]DevExpress.Persistent.Base.ReportsV2
  [Expand]DevExpress.Persistent.Base.Security
  [Expand]DevExpress.Persistent.BaseImpl
  [Expand]DevExpress.Persistent.BaseImpl.EF
  [Expand]DevExpress.Persistent.BaseImpl.EF.PermissionPolicy
  [Expand]DevExpress.Persistent.BaseImpl.PermissionPolicy
  [Expand]DevExpress.Persistent.Validation
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

ActionAttribute Class

Converts a persistent class method into a SimpleAction or PopupWindowShowAction.

Namespace:DevExpress.Persistent.Base
Assembly:DevExpress.ExpressApp.v19.1.dll

Expanded Syntax

Expanded Remarks

An Action can be implemented in a persistent class declaration. When the Action attribute is applied to a persistent class method, a new Action is added to the special built-in ObjectMethodActionsViewController View Controller. If the target method is parameterless, then a SimpleAction is created. If this method takes a non-persistent object as a parameter, then a PopupWindowShowAction is created, and a passed object's Detail View is shown in a pop-up. When this Action is executed, the target method is called. The target method's declaring class is assigned to the Action's ActionBase.TargetObjectType property. So, this Action is activated only for objects of the specified type. When activated, this Action is displayed within the RecordsEdit Action Container, because the ActionBase.Category property of these Actions is set to "RecordEdit", by default. You can override this behavior by passing the required category as the category parameter. You can also specify other named parameters to define the Action's details: caption, tooltip, image name and so on.

Identifiers (see ActionBase.Id) of Actions declared via the Action attribute are formed by combining the declaring type name and target method name separated with a dot. If target method takes a parameter, then the method parameter type name is also appended. For instance, if the Action attribute is applied to a Recalculate method declared in an Order business class, the resulting Action's identifier will be "Order.Recalculate". Metadata information on the Actions is available in the Application Model. So, just like with a regular Action declared in a Controller, you can customize these Actions via ActionDesign | Action node properties in the Model Editor.

If the Action attribute's parameters do not allow you to define a particular feature, add a Simple Action to a custom Controller in the standard way (see Add a Simple Action, Add an Action that Displays a Pop-up Window).

To see an example of the Action attribute in use, refer to the How to: Create an Action Using the Action Attribute topic.

Tip

It is not recommended to create actions within business classes because normally, a business model is separated from UI settings.

Expanded Inheritance Hierarchy

System.Object
    System.Attribute
       ActionAttribute

Expanded See Also

Is this topic helpful?​​​​​​​