【发布时间】:2015-12-02 13:26:13
【问题描述】:
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。但目前时间不多了。因此,检查是否有人面临同样的事情。所以会更快。而且我在 NuGet 中看到的 Microsoft.AspNet.Razor 也没有依赖项
-
仅仅因为你的时间不够用并不意味着你不能做足够的研究。我想如果你用谷歌搜索“asp.net razor to html library”,你会找到你要找的东西
-
是的..我们已经在这样做了
标签: asp.net asp.net-mvc asp.net-mvc-4 razor viewengine