Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The RouteData must contain an item named 'controller' with a non-empty string value

public static string RazorViewRender(object model, string filePath)
{
     var sw = new StringWriter();
     var context = new HttpContextWrapper(System.Web.HttpContext.Current);
     var routeData = new RouteData() ;
     HomeController home= new HomeController();
     var controllerContext = new ControllerContext(new RequestContext(context, routeData), home);
     var razor = new RazorView(controllerContext, filePath, null, false, null);
     razor.Render(new ViewContext(controllerContext, razor, new ViewDataDictionary(model), new TempDataDictionary(), sw), sw);
     return sw.ToString();
}

in this code,

razor.render

line program gives error

'The RouteData must contain an item named 'controller' with a non-empty string value.'

i guess it can't find my homecontroller, my project has areas. How can i solve this problem.

like image 474
hohoholololo Avatar asked Dec 14 '25 17:12

hohoholololo


1 Answers

you need to add route data. Exception tell you everything.

var routeData = new RouteData() ;
routeData.Values.Add("Controller", "Home");
routeData.Values.Add("Action", "Index");
like image 107
Onur Gelmez Avatar answered Dec 17 '25 09:12

Onur Gelmez



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!