/// <summary> /// 根据控件输出模式,输出控件 /// </summary> /// <param name="ctr">要输出的控件</param> /// <param name="baseRenderString">控件原输出内容</param> /// <param name="renderMode">输出模式</param> /// <remarks>根据控件输出模式,输出控件</remarks> internal static void RenderControlOnlySelf(this Control ctr, string baseRenderString, ControlRenderMode renderMode) { HttpResponse response = HttpContext.Current.Response; response.ClearContent(); response.ContentEncoding = Encoding.UTF8; response.Charset = "utf-8"; string htmlContentType = WebAppSettings.GetContentTypeByKey(ResponseContentTypeKey.HTML); string contentType = WebAppSettings.GetContentTypeByKey(renderMode.ContentTypeKey); if (contentType == string.Empty) { contentType = htmlContentType; } response.ContentType = contentType; string renderStr = contentType == htmlContentType? GetRenderSingleControlString(ctr, baseRenderString) : GetFileRenderSingleControlString(baseRenderString, contentType); switch (renderMode.DispositionType) { case ResponseDispositionType.Inline: case ResponseDispositionType.Attachment: response.AppendHeader("CONTENT-DISPOSITION", string.Format("{0};filename={1}", renderMode.DispositionType, response.EncodeFileNameInContentDisposition(renderMode.AttachmentFileName))); break; } response.Write(renderStr); response.End(); }
/// <summary> /// 向页面添加配置扩展信息 /// </summary> /// <param name="context">HttpContext</param> /// <param name="checkAutoLoad"></param> public static void LoadConfigPageContent(this HttpContext context, bool checkAutoLoad) { if (context != null) { PageContentSection section = ConfigSectionFactory.GetPageExtensionSection(); Page page = context.GetCurrentPage(); if (page != null) { if (checkAutoLoad) { if (section.AutoLoad == false) { return; } if (page.Header == null) { return; } string headerAutoLoad = page.Header.Attributes["autoLoad"]; if (headerAutoLoad.IsNotEmpty() && headerAutoLoad.ToLower() == "false") { return; } } if (WebAppSettings.IsWebApplicationCompilationDebug()) { RegisterCssInHeader(page, section.CssClasses.Debug); } else { RegisterCssInHeader(page, section.CssClasses.Release); } RegisterCssInHeader(page, section.CssClasses.All); if (WebAppSettings.IsWebApplicationCompilationDebug()) { RegisterScriptInHeader(page, section.Scripts.Debug); } else { RegisterScriptInHeader(page, section.Scripts.Release); } RegisterScriptInHeader(page, section.Scripts.All); } } }
/// <summary> /// Response客户端弹出错误框 /// </summary> /// <param name="response">HttpResponse对象</param> /// <param name="strMessage">错误框消息</param> /// <param name="strDetail">错误框详细信息</param> /// <param name="strTitle">错误框Title</param> public static void WriteShowClientErrorScriptBlock(this HttpResponse response, string strMessage, string strDetail, string strTitle) { if (response != null) { HttpContextExtension.ResponseClientMessageCommonScriptBlock(); if (WebAppSettings.AllowResponseExceptionStackTrace() == false) { strDetail = string.Empty; } string script = ScriptHelper.GetShowClientErrorScript(strMessage, strDetail, strTitle); script = DeluxeClientScriptManager.AddScriptTags(script); WebApplicationExceptionExtension.TryWriteAppLog(strMessage, strDetail); response.Write(script); } }
private static void ResponseErrorMessage(HttpContext context, string strErrorMsg, string strStackTrace) { string errorFormat = ResourceHelper.LoadStringFromResource(Assembly.GetExecutingAssembly(), "MCS.Web.Responsive.Library.HttpModules.ApplicationErrorModuleTemplate.htm"); Page page = context.CurrentHandler is Page ? (Page)context.CurrentHandler : new Page(); string imageUrl = ApplicationErrorLogSection.GetSection().LogoImage; if (imageUrl.IsNullOrEmpty()) { imageUrl = page.ClientScript.GetWebResourceUrl(typeof(ApplicationErrorModule), "MCS.Web.Responsive.Library.HttpModules." + Translator.Translate(Define.DefaultCategory, "ApplicationErrorModuleTemplate_stopLogo.gif")); } string goBackBtnDisplay = context.Request.UrlReferrer != null ? "inline" : "none"; string closePromptValue = context.Request.UrlReferrer != null ? "true" : "false"; string[] strArray = errorFormat.Split('$'); for (int i = 0; i < strArray.Length; i++) { switch (strArray[i]) { case "globalStyle": if (ApplicationErrorLogSection.GetSection().GlobalStyle.IsNotEmpty()) { strArray[i] = string.Format("<link href=\"{0}\" type=\"text/css\" rel=\"stylesheet\" />", ApplicationErrorLogSection.GetSection().GlobalStyle); } else { strArray[i] = string.Empty; } break; case "imageUrl": strArray[i] = imageUrl; break; case "goBackBtnDisplay": strArray[i] = goBackBtnDisplay; break; case "closePromptValue": strArray[i] = closePromptValue; break; case "copyHint": strArray[i] = HttpUtility.HtmlAttributeEncode(Translator.Translate(Define.DefaultCategory, "复制信息")); break; case "copyCompletedPrompt": strArray[i] = HttpUtility.HtmlAttributeEncode(Translator.Translate(Define.DefaultCategory, "复制信息完成")); break; case "errorMessage": strArray[i] = HttpUtility.HtmlEncode(strErrorMsg); break; case "errorStackTrace": string errorMessage = string.Empty; if (WebAppSettings.AllowResponseExceptionStackTrace()) { errorMessage += "\r\n" + strStackTrace; } strArray[i] = errorMessage.Replace("\r\n", "<br/>"); break; case "clickToDetail": strArray[i] = Translator.Translate(Define.DefaultCategory, "点击此处展开详细信息......"); break; case "clickToCloseDetail": strArray[i] = Translator.Translate(Define.DefaultCategory, "点击此处关闭详细信息......"); break; case "ConfirmClose": strArray[i] = Translator.Translate(Define.DefaultCategory, "您确认要关闭窗口吗?"); break; case "errorMessageHead": strArray[i] = Translator.Translate(Define.DefaultCategory, "错误提示"); break; case "returnBtn": strArray[i] = Translator.Translate(Define.DefaultCategory, "返回"); break; case "closeBtn": strArray[i] = Translator.Translate(Define.DefaultCategory, "关闭"); break; case "notifyMailAddress": string mailAddress = ApplicationErrorLogSection.GetSection().NotifyMailAddress; if (mailAddress.IsNotEmpty()) { strArray[i] = HttpUtility.HtmlAttributeEncode(string.Format(@"mailto://{0}", mailAddress)); } else { strArray[i] = "#"; } break; } } context.Response.Clear(); context.Response.Write(string.Join("", strArray)); context.Response.Flush(); context.Response.End(); }