Custom controller response - SimplifyNet/Simplify.Web GitHub Wiki

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