public ActionResult Generate(GenerateRectangleInput model) { if (!ModelState.IsValid) { return(View(model)); } try { var grid = gridService.InitialiseWithRectanglesOfRandomSize(model.NumberOfRectangles); return(File(Encoding.UTF8.GetBytes(grid.ToStringUsingDimensionsOfRectangles()), "text/plain", "rectangle-dimensions.txt")); } catch (LogicException ex) { ModelState.AddLogicErrors(ex); return(View(model)); } }