public ActionResult Page(string id) { #if PUB var page = new PageModelBuilder <PubPage>(_db).GetPage(id); #elif CMS var page = new PageModelBuilder <CmsPage>(_db).GetPage(id); #endif if (page == null) { throw new HttpException(404, "Page not found"); } var webpartHeaders = new StringBuilder(); var havingWebPart = false; page.ContentHtml.Content = _pageEngine.ReplaceTokens( page: page, webpartHeaders: webpartHeaders, havingWebPart: out havingWebPart, controllerContext: ControllerContext); ViewBag.HavingWebPart = havingWebPart; ViewBag.WebpartHeaders = webpartHeaders.ToString(); #if CMS ViewBag.AccessMode = SecurityHelper.PageAccessMode(_db, page); #endif ViewBag.NaviNode = page.NaviNode; ViewBag.BaseNode = CmsPageBase.FindBaseNode(page); var viewHtml = ViewRenderer.RenderViewToString(ControllerContext, "~/Core/Containers/Views/Cms/Page.cshtml", page); return(Content(viewHtml, "text/html")); }
/// <summary> /// Renders a partial MVC view to string. Use this method to render /// a partial view that doesn't merge with _Layout and doesn't fire /// _ViewStart. /// </summary> /// <param name="viewPath"> /// The path to the view to render. Either in same controller, shared by /// name or as fully qualified ~/ path including extension /// </param> /// <param name="model">The model to pass to the viewRenderer</param> /// <param name="controllerContext">Active Controller context</param> /// <returns>String of the rendered view or null on error</returns> public static string RenderView(string viewPath, object model = null, ControllerContext controllerContext = null) { ViewRenderer renderer = new ViewRenderer(controllerContext); return(renderer.RenderViewToString(viewPath, model)); }
public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } // get rendered HTML from view string html = ViewRenderer.RenderViewToString(context, ViewName, Model); var cssFiles = CssHelper.GetAllCssPaths(html); //html = ClearHtmlStrategy.Clear(html); // generate the PDF content from HTML var pageConfig = PageConfig != null ? PageConfig : PageSize.A4; byte[] content = HtmlToPdfRenderer.Render(html, cssFiles, pageConfig); var contentDisposition = IsAttachment ? "attachement" : "inline"; HttpResponseBase response = context.HttpContext.Response; response.Clear(); response.ClearContent(); response.ClearHeaders(); response.ContentType = "application/pdf"; response.AppendHeader("Content-Disposition", $"{contentDisposition};filename={Filename}.pdf"); response.AddHeader("Content-Length", content.Length.ToString()); response.BinaryWrite(content); response.OutputStream.Flush(); response.OutputStream.Close(); response.End(); }
public string RenderView() { var r = new ViewRenderer(); return(r.RenderViewToString("~/Views/Utilities/ScriptVariables.cshtml")); return(ViewRenderer.RenderView("~/Views/Utilities/ScriptVariables.cshtml")); }
public IHttpActionResult SendTestEmail(string email) { var renderer = new ViewRenderer(); string body = renderer.RenderViewToString("~/Views/Emails/_PreLaunch.cshtml", (object)"DEMO"); _emailService.Send(email, "iiSnap - Thank you for your interest", body, new string[] { "~/Content/Images/logo.png" }); return(Ok()); }
private static string BuildContent(ControllerContext context, string[] parameters) { var contentId = parameters.Length > 1 ? parameters[1].Trim() : ""; if (String.IsNullOrEmpty(contentId)) { return(""); } return(ViewRenderer.RenderViewToString(context, "~/Core/views/Content/" + contentId + ".cshtml", null, true)); }
/// <summary> /// Renders a partial MVC view to string. Use this method to render /// a partial view that doesn't merge with _Layout and doesn't fire /// _ViewStart. /// </summary> /// <param name="viewPath"> /// The path to the view to render. Either in same controller, shared by /// name or as fully qualified ~/ path including extension /// </param> /// <param name="model">The model to pass to the viewRenderer</param> /// <param name="controllerContext">Active Controller context</param> /// <param name="errorMessage">optional out parameter that captures an error message instead of throwing</param> /// <returns>String of the rendered view or null on error</returns> public static string RenderView(string viewPath, object model, ControllerContext controllerContext, out string errorMessage) { errorMessage = null; try { ViewRenderer renderer = new ViewRenderer(controllerContext); return(renderer.RenderViewToString(viewPath, model)); } catch (Exception ex) { errorMessage = ex.GetBaseException().Message; } return(null); }
private string BuildContent(IPage page, List <Comment> comments, StringBuilder webpartHeaders, ControllerContext context, bool isEditState, bool isPublic) { var statusString = _context.Parameters.Length > 1 ? _context.Parameters[1].Trim() : "open"; var status = statusMapping.ContainsKey(statusString) ? statusMapping[statusString] : true; if (!page.Commentable) { return(""); } if (context == null) { var controller = ViewRenderer.CreateController <GenericController>(); context = controller.ControllerContext; } else { if (context.Controller.TempData["ViewData"] != null) { context.Controller.ViewData = (ViewDataDictionary)context.Controller.TempData["ViewData"]; } } var account = context.HttpContext.User.Identity.Name.ToLower(); var commentModel = new CommentViewModel { PageId = page.Id, Url = page.Url, Comments = comments, Status = status, IsEditState = isEditState, Email = GuessEmail(account), Name = GuessName(account).ToUpper() }; context.Controller.ViewBag.RecaptchaSkipValidation = _skipRecaptcha; var contentString = ViewRenderer.RenderViewToString(context, "~/Areas/Comment/views/Comment/_CommentPartial.cshtml", commentModel, true); return(contentString); }
public IHttpActionResult Register(PreLaunchRegisterToken token) { if (ModelState.IsValid) { try { string refCode = _invitationService.AddToList(token.Email, token.Referrer); var renderer = new ViewRenderer(); string body = renderer.RenderViewToString("~/Views/Emails/_PreLaunch.cshtml", (object)refCode); _emailService.Send(token.Email, "iiSnap - Thank you for your interest", body, new string[] { "~/Content/Images/logo.png" }); return(Ok(refCode)); } catch (Exception ex) { return(InternalServerError(ex)); } } return(BadRequest(ModelState)); }
public async Task <JsonResult> CreateAccount(string id) { var userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var seller = _sellerService.GetById(id); ApplicationUser sellerUser = await userManager.FindByEmailAsync(seller.email); if (sellerUser == null) { sellerUser = new ApplicationUser { UserName = seller.email, Email = seller.email }; string password = System.Web.Security.Membership.GeneratePassword(10, 0); var result = await userManager.CreateAsync(sellerUser, password); if (result.Succeeded) { // Add Seller role result = await userManager.AddToRoleAsync(sellerUser.Id, "Seller"); result = await userManager.AddClaimAsync(sellerUser.Id, new System.Security.Claims.Claim("urn:iisnap:name", seller.name)); result = await userManager.AddClaimAsync(sellerUser.Id, new System.Security.Claims.Claim("urn:iisnap:seller_id", seller.id)); var renderer = new ViewRenderer(); var body = renderer.RenderViewToString("~/Views/Emails/_SellerWelcome.cshtml", new SellerWelcomeModel { Email = seller.email, Name = seller.name, Password = password }); _emailService.Send(seller.email, "Welcome to iiSnap", body); return(Json(new { result = "User Created" })); } } return(Json(new { error = "User Already Exists" })); }
private static string BuildContent(DriverContext context, List <MenuItem> items) { return(ViewRenderer.RenderViewToString(context.ControllerContext, "~/Areas/NavigationBar/Views/Item/_BarPartial.cshtml", items, true)); }