2016-12-31 65 views
0

使用的ViewData和ControllerContext我有以下的代碼的控制器內的工作原理。在外部服務

public string RenderRazorViewToString(string viewName, object model) 
{ 
    ViewData.Model = model; 
    using (var sw = new StringWriter()) 
    { 
     var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, 
                    viewName); 
     var viewContext = new ViewContext(ControllerContext, viewResult.View, 
             ViewData, TempData, sw); 
     viewResult.View.Render(viewContext, sw); 
     viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View); 
     return sw.GetStringBuilder().ToString(); 
    } 
} 

我想將它移動到外部服務重用,但解決不了的ViewData或ControllerContext。除了將簽名更改爲靜態之外,我還需要做什麼?

回答

0

傳遞ViewDataControllerContext的方法作爲參數。

public string RenderRazorViewToString(string viewName, object model, ViewData viewData, ControllerContext controllerContext) 
{ 

}