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