0
ビューエンジンを使用してASP.NET Mvcでhtml文字列フォームcshtmlページを取得したいと思います。ビューエンジンを使用してasp.netのcshtmlページのHTML文字列を取得するには?
ビューエンジンを使用してASP.NET Mvcでhtml文字列フォームcshtmlページを取得したいと思います。ビューエンジンを使用してasp.netのcshtmlページのHTML文字列を取得するには?
は最後に、私は次のようにContollerContext
とViewEngine
を使用して、かみそりのページからHTML文字列を生成することができる午前:
public static string GetHtmlFromView(this ControllerContext context, ViewEngineResult viewResult, string viewName, object model)
{
context.Controller.ViewData.Model = model;
using (StringWriter sw = new StringWriter())
{
// view not found, throw an exception with searched locations
if (viewResult.View == null)
{
var locations = new StringBuilder();
locations.AppendLine();
foreach (string location in viewResult.SearchedLocations)
{
locations.AppendLine(location);
}
throw new InvalidOperationException(
string.Format(
"The view '{0}' or its master was not found, searched locations: {1}", viewName, locations));
}
ViewContext viewContext = new ViewContext(context, viewResult.View, context.Controller.ViewData, context.Controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
string html = sw.GetStringBuilder().ToString();
string baseUrl = string.Format("{0}://{1}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Authority);
//html = Regex.Replace(html, "<head>", string.Format("<head><base href=\"{0}\" />", baseUrl), RegexOptions.IgnoreCase);
return html;
}
}
あなたはカミソリを使用していますか?あなたはこれをどこでやっていますか?一部のメソッドはControllerContextに依存します –
はい、私はRazorを使用しています...私はビューからpdfを生成するために取り組んでいます。 – Rajat1937
ビューを文字列として取得するためのこの回答を見てください:http://stackoverflow.com/questions/36161381/can-a-web-api-controller-render-a-view-as-a-string/36178420 #36178420 – peco