Skip to content

Custom controller response

Alexanderius edited this page Jul 3, 2025 · 4 revisions

Custom controller response

You can create your custom controller response by deriving from the ControllerResponse base class and implementing the ExecuteAsync method.

Recommended asynchronous example

public class MyControllerResponse : ControllerResponse
{
    public override async Task<ResponseBehavior> ExecuteAsync()
    {
        // Do your response action
        // await ...

        return ResponseBehavior.Default;
    }
}

Synchronous example

public class MyControllerResponse : ControllerResponse
{
    public override Task<ResponseBehavior> ExecuteAsync()
    {
        // Do your response action

        return Task.FromResult(ResponseBehavior.Default);
    }
}
  • When a controller returns your controller response, the ExecuteAsync method is called by the framework after controller execution.
  • ControllerResponse has the same properties as the Controller base class to access Simplify.Web modules like DataCollector or WebContext; you can use them to perform your actions.
  • An additional module available to controller responses is ResponseWriter, which provides writing to the HTTP response.
  • The ExecuteAsync method should return one of the ResponseBehavior enum types:
    • Default - default result; the framework will process other controllers applicable to the request and generate a page.
    • RawOutput - indicates that subsequent controller execution and page generation should be stopped (for example, if you are providing some custom output to the client); no output data will be sent to the client except your custom writing to the response.
    • Redirect - indicates that the controller response is performing a client redirection; technically the same as RawOutput.

<< Previous page Next page >>

Clone this wiki locally