Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class WindowTagHelper : TagHelper
- {
- public string Title { get; set; }
- public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
- {
- var preContent = await output.GetChildContentAsync();
- var id = context.UniqueId;
- output.TagName = "div";
- output.Attributes["id"] = id;
- output.Attributes["class"] = "window";
- output.TagMode = TagMode.StartTagAndEndTag;
- var windowControls = new StringBuilder();
- windowControls.Append("<div class="window-controls">");
- windowControls.Append("<ul class="window-icon-list">");
- 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);
- 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);
- 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);
- windowControls.Append(minimizeIcon);
- windowControls.Append(maximizeIcon);
- windowControls.Append(closeIcon);
- windowControls.Append("</ul>");
- windowControls.Append("</div>");
- var content = new StringBuilder();
- content.AppendFormat("<div class="window-title">{0}{1}</div>", windowControls.ToString(), Title);
- content.Append(preContent.GetContent());
- output.Content.AppendHtml(content.ToString());
- }
- }
- public string RenderPartialViewToString(string viewName, object model)
- {
- if (string.IsNullOrEmpty(viewName))
- viewName = ActionContext.ActionDescriptor.Name;
- ViewData.Model = model;
- using (StringWriter sw = new StringWriter())
- {
- var engine = Resolver.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
- ViewEngineResult viewResult = engine.FindPartialView(ActionContext, viewName);
- ViewContext viewContext = new ViewContext(ActionContext, viewResult.View, ViewData, TempData, sw,new HtmlHelperOptions());
- var t = viewResult.View.RenderAsync(viewContext);
- t.Wait();
- return sw.GetStringBuilder().ToString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement