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
ExecuteAsyncmethod is called by the framework after controller execution. ControllerResponsehas the same properties as theControllerbase class to access Simplify.Web modules likeDataCollectororWebContext; 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
ExecuteAsyncmethod should return one of theResponseBehaviorenum 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 asRawOutput.