A lot of ActionResults have a StatusCode property. Instead of being duplicated it could be defined in the ActionResult class. This would allow you to write generic code against ActionResult and know the outcome of the action (e.g. success or error), without to having to cast to all the different implementations to find out, if available.
We want to keep the action result abstraction free of any specific result logic. You can instead provide a wrapping action result that sets the status code and then calls the inner result.