Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. public class WindowTagHelper : TagHelper
  2. {
  3. public string Title { get; set; }
  4. public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
  5. {
  6. var preContent = await output.GetChildContentAsync();
  7. var id = context.UniqueId;
  8. output.TagName = "div";
  9. output.Attributes["id"] = id;
  10. output.Attributes["class"] = "window";
  11. output.TagMode = TagMode.StartTagAndEndTag;
  12.  
  13. var windowControls = new StringBuilder();
  14. windowControls.Append("<div class="window-controls">");
  15. windowControls.Append("<ul class="window-icon-list">");
  16.  
  17. var minimizeIcon = "<li class="control-icon"><a data-window-id="{0}" class="control-icon-minimize" href="#" data-toggle="tooltip" title="Minimize Window"><div class="fa fa-minus"></div></a></li>".InjectWith(id);
  18. var maximizeIcon = "<li class="control-icon"><a data-window-id="{0}" class="control-icon-maximize" href="#" data-toggle="tooltip" title="Maximize Window"><div class="fa fa-square-o"></div></a></li>".InjectWith(id);
  19. var closeIcon = "<li class="control-icon"><a data-window-id="{0}" class="control-icon-close" href="#" data-toggle="tooltip" title="Close Window"><div class="fa fa-close"></div></a></li>".InjectWith(id);
  20.  
  21. windowControls.Append(minimizeIcon);
  22. windowControls.Append(maximizeIcon);
  23. windowControls.Append(closeIcon);
  24. windowControls.Append("</ul>");
  25. windowControls.Append("</div>");
  26.  
  27. var content = new StringBuilder();
  28. content.AppendFormat("<div class="window-title">{0}{1}</div>", windowControls.ToString(), Title);
  29. content.Append(preContent.GetContent());
  30. output.Content.AppendHtml(content.ToString());
  31. }
  32. }
  33.  
  34. public string RenderPartialViewToString(string viewName, object model)
  35. {
  36. if (string.IsNullOrEmpty(viewName))
  37. viewName = ActionContext.ActionDescriptor.Name;
  38.  
  39. ViewData.Model = model;
  40.  
  41. using (StringWriter sw = new StringWriter())
  42. {
  43. var engine = Resolver.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
  44. ViewEngineResult viewResult = engine.FindPartialView(ActionContext, viewName);
  45.  
  46. ViewContext viewContext = new ViewContext(ActionContext, viewResult.View, ViewData, TempData, sw,new HtmlHelperOptions());
  47.  
  48. var t = viewResult.View.RenderAsync(viewContext);
  49. t.Wait();
  50.  
  51. return sw.GetStringBuilder().ToString();
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement