0
public string GetRazorViewAsString(string filePath, object model = null)
{
var resultString = new StringWriter();
var context = new HttpContextWrapper(HttpContext.Current);
var routeData = new RouteData();
// Creatign the controller context
var controllerContext = new ControllerContext(new RequestContext(context, routeData), new DummyController());
// Rebdering the view and getting the html to resultString
var razor = new RazorView(controllerContext, filePath, null, false, null);
razor.Render(new ViewContext(controllerContext, razor, new ViewDataDictionary(model), new TempDataDictionary(), resultString), resultString);
// Returning the generated html
return resultString.ToString();
}
public class DummyController : Controller { }
目前,我们正在使用上面的代码来为视图生成HTML。 因此,查看路径是一条虚拟路径。如何通过它的完整文件位置获得任何视图的Html
现在,我们计划将视图移到项目之外。所以保持虚拟路径现在是不可能的。
是否有通过采取视图的全路径
如果你看看NuGet中的MVC包,你会发现它依赖于Razor包。如果你看看这个Razor包,你会发现另一个项目依赖于它,并且该项目能够做你想做的事。做一点研究,我想你会找到它。 – mason
当然@mason。但目前时间不多了。所以,检查是否有人面临同样的事情。所以它会更快。并且也没有Microsoft.AspNet.Razor的依赖关系,因为我在NuGet中看到 –
仅仅因为时间不够而并不意味着您无法进行充分的研究。我想你会发现你要找的东西,如果你谷歌“asp.net剃须刀到html库” – mason