Skip to content

Instantly share code, notes, and snippets.

@JustinJohnWilliams
Created October 12, 2012 15:57
Show Gist options
  • Save JustinJohnWilliams/3879926 to your computer and use it in GitHub Desktop.
Save JustinJohnWilliams/3879926 to your computer and use it in GitHub Desktop.
public class MVC
{
public static ActionResult Post(RequestContext context, string url, object thing)
{
var controllerAndAction = url.Split('/');
var controller = CreateController(context, controllerAndAction[0]);
var controllerContext = new ControllerContext(context, controller);
var controllerDescriptor = new ReflectedControllerDescriptor(controller.GetType());
var actionDescriptor = controllerDescriptor.FindAction(controllerContext, controllerAndAction[1]);
return (ActionResult)actionDescriptor.Execute(controllerContext, thing.ToDictionary());
}
private static ControllerBase CreateController(RequestContext context, string controllerName)
{
IControllerFactory factory = ControllerBuilder.Current.GetControllerFactory();
IController controller = factory.CreateController(context, controllerName);
return (ControllerBase)controller;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment