Skip to content

Custom controller response

Alexanderius edited this page Jun 7, 2024 · 3 revisions

Custom controller response

You can create your custom controller response by deriving from ControllerResponse base class and implementing 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 then the ExecuteAsync method called by framework after controller execution;
  • ControllerResponse has the same properties like Controller base class to access Simplify.Web modules like DataCollector or WebContext, you can use them to do your actions;
  • Additional module available to controller response is ResponseWriter, this module provides writing to the HTTP response;
  • ExecuteAsync method should return one of the ResponseBehavior enum types:
    • Default - default result, framework will process other controllers applicable to the request and generate a page;
    • RawOutput - indicates that subsequent controllers execution and page generation should be stopped (for example, if you are providing some custom output to client), no output data will be sent to the client except your custom writing to the response;
    • Redirect - indicates that controller response doing some client redirection, technically same as RawOutput.

<< Previous page Next page >>

Clone this wiki locally