RouteData必须包含一个名为“ controller”的项目,该项目的字符串值为非空

时间:2019-07-12 10:14:45

标签: javascript c# ajax model-view-controller

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();
}

在此代码中

  

razor.render

行程序显示错误

  

“ RouteData必须包含一个名为'controller'的项,并带有一个   非空字符串值。'

我猜它找不到我的家庭控制器,我的项目有区域。我该如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

您需要添加路线数据。异常告诉你一切。

var routeData = new RouteData() ;
routeData.Values.Add("Controller", "Home");
routeData.Values.Add("Action", "Index");