public override ViewEngineResult FindPartialView(ControllerContext controllerContext, string partialViewName, bool useCache) { var ns = controllerContext.GetType().Namespace; this.PartialViewLocationFormats.ToList().Add($"~/Views/{namespacePathStr(controllerContext)}/{1}/{0}.cshtml"); return(base.FindPartialView(controllerContext, partialViewName, useCache)); }
private string constructLogMessage(ControllerContext context) { string messageTemplate = "Session: {0} Controller: {1} Action: {2} Filter Action: {3} Timestamp: {4}\r\n"; return string.Format(messageTemplate, context.HttpContext.Session.SessionID, context.RouteData.Values["controller"], context.RouteData.Values["action"], context.GetType().Name, DateTime.Now); }
private Serilog.ILogger GetLogger(ControllerContext filterContext) { var controllerType = filterContext.GetType(); var logger = LoggingConfig.GetLoggerForContext(controllerType); return(logger); }
private string namespacePathStr(ControllerContext controllerContext) { //获取控制器名字空间 var ns = controllerContext.GetType().Namespace; //去掉Controllers以及前面的部分。并把名字空间分隔符.转换为/ var nss = ns.Substring(ns.IndexOf("Controllers") + 11).Replace('.', '/'); return(nss); }
public static void LogTrace(ControllerContext context) { if (context == null || context.Controller == null) { return; } StackTrace st = new StackTrace(); StackFrame sf = st.GetFrame(1); if (sf.GetMethod().ReflectedType.Name != "DefaultControllerAttribute") { return; } Logger logger = LogManager.GetLogger("TraceLog"); if (logger == null) { return; } if (logger.IsTraceEnabled || logger.IsInfoEnabled) { var user = context.HttpContext.User as IPrincipal; var accountId = user == null ? null : user.Identity.GetUserId(); var controller = context.Controller as Controller; if (logger.IsTraceEnabled) { var message = context.GetType().Name; message = FormatTraceMessage(controller, accountId, message); logger.Trace(message); } if (logger.IsInfoEnabled) { var message = context.GetType().Name; message = FormatTraceExtendMessage(controller, accountId, message); logger.Info(message); } } }
public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentException(context.GetType().FullName); } var response = context.HttpContext.Response; response.ContentType = !string.IsNullOrEmpty(ContentType) ? ContentType : "application/json"; if (ContentEncoding != null) { response.ContentEncoding = ContentEncoding; } var jsonSerializerSetting = new JsonSerializerSettings(); //首字母小写 jsonSerializerSetting.ContractResolver = new CamelCasePropertyNamesContractResolver(); //日期格式化 jsonSerializerSetting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; var json = JsonConvert.SerializeObject(Data, Formatting.None, jsonSerializerSetting); response.Write(json); //base.ExecuteResult(context); }