饿补基础知识

1、Server.MapPath的用法json

      1).Server.MapPath("./")   当前目录app

      2).Server.MapPath("/")    网站主目录网站

      3).Server.MapPath("../")  上层目录ui

      4).Server.MapPath("~/")  网站虚拟目录this

      5).控制台程序获取:string path = Environment.CurrentDirectory.ToLower().Replace("bin\\debug","")url

2、获取文件后缀spa

     System.IO.Path.GetExtensiondebug

3、NPOI组件的用法(将excel转化为DataTable)excel

4、ToDictionary、ToLookup和Linqcode

5、js替换指定的url参数,没有则添加,有则修改

     function replaceParamVal(paramName, replaceWith) {

       var oUrl = this.location.href.toString();
       var nUrl = oUrl;
       var re1 = eval('/(\&' + paramName + '=)([^&]*)/gi');
       var re2 = eval('/(\\?' + paramName + '=)([^&]*)/gi');
       if (re1.test(oUrl)) {
            nUrl = oUrl.replace(re1, "&" + paramName + '=' + replaceWith);
       } else if (re2.test(oUrl)) {
            nUrl = oUrl.replace(re2, "?" + paramName + '=' + replaceWith);
      }
      else {
           if (oUrl.indexOf("?") != -1) {
                nUrl += "&"+paramName+"="+replaceWith;
          } else {
                nUrl += "?" + paramName + "=" + replaceWith;
         }
    }

    this.location = nUrl;
}

6、js 滚动条滚动到底部

    $(window).scroll(function(){

  var scrollTop = $(this).scrollTop();
  var scrollHeight = $(document).height();
  var windowHeight = $(this).height();
  if(scrollTop + windowHeight == scrollHeight){
    alert("you are in the bottom");
  }
  });
7、json对象转字符串:JSON.stringify(jsonObj)  json字符串转json对象 JSON.parse(jsonStr)
8、输出Excel
        /// <summary>
        /// 输出Excel
        /// </summary>
        /// <param name="workBook"></param>
        /// <param name="fileName"></param>
        /// <param name="contentEncode"></param>
        public static void Export(IWorkbook workBook, string fileName)
        {
            MemoryStream ms = new MemoryStream();
            workBook.Write(ms);
            HttpResponse httpResponse = HttpContext.Current.Response;
            httpResponse.AddHeader("Pragma", "public");
            httpResponse.AddHeader("Cache-Control", "max-age=0");
            httpResponse.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", fileName));
            //httpResponse.AddHeader("content-type", "application/x-msdownload");
            httpResponse.ContentEncoding = Encoding.UTF8;
            httpResponse.ContentType = "application/vnd.ms-excel";
            httpResponse.BinaryWrite(ms.ToArray());
            workBook = null;
            ms.Close();
            ms.Dispose();
        }

9、判断值是否为指定类型

       System.ComponentModel.TypeDescriptor.GetConverter(item.Type).ConvertFrom(dr[item.Key].ToString()); 

10、动态拼接json

//递归构建json
        static string RecursionMosaicJson(List<ExportsOrderInterfaceFieldVM> fieldList)
        {
            StringBuilder sb = new StringBuilder("{");

            foreach (var field in fieldList)
            {
                if (parentKeyList.Contains(field.ParentID))
                {
                    continue;
                }

                if (field.ObjectType == InterfaceObjectType.Array.ToString())
                {
                    List<ExportsOrderInterfaceFieldVM> list = fieldAllList.Where(l => l.ParentID == field.Id).ToList();
                    string childrenJson = RecursionMosaicJson(list);
                    parentKeyList.Add(field.Id);
                    sb.AppendFormat("\"{0}\":[{1}],", field.InterfaceFieldName, childrenJson);
                }
                else if (field.ObjectType == InterfaceObjectType.Object.ToString())
                {
                    sb.AppendFormat("\"{0}\":\"\",", field.InterfaceFieldName);
                }
            }

            string json = sb.ToString().TrimEnd(',');
            json += "}";

            return json;
        }

11、动态拼接xml

        //递归构建xml
        static string RecursionMosaicXml(List<ExportsOrderInterfaceFieldVM> fieldList)
        {
            StringBuilder sb = new StringBuilder("");

            foreach (var field in fieldList)
            {
                if (parentKeyList.Contains(field.ParentID))
                {
                    continue;
                }

                //xml中的属性
                List<ExportsOrderInterfaceFieldVM> attributeList = fieldAllList.Where(l => 
                    l.XMLElementType == XmlElementType.Attribute.ToString() 
                    && l.ParentID == field.Id).ToList();
                string attrXml = "";
                if (attributeList.Count > 0)
                {
                    foreach (var attr in attributeList)
                    {
                        attrXml += " " + attr.InterfaceFieldName + "=\"\"";
                    }
                }

                if (field.ObjectType == InterfaceObjectType.Array.ToString())
                {
                    List<ExportsOrderInterfaceFieldVM> list = fieldAllList.Where(l => l.ParentID == field.Id
                        && l.XMLElementType!=XmlElementType.Attribute.ToString()).ToList();
                    string childrenXml = RecursionMosaicXml(list);
                    parentKeyList.Add(field.Id);
                    sb.AppendFormat("<{0}{2}>{1}</{0}>", field.InterfaceFieldName, childrenXml,attrXml);
                }
                else if(field.ObjectType == InterfaceObjectType.Object.ToString())
                {
                    sb.AppendFormat("<{0}{1}></{0}>", field.InterfaceFieldName, attrXml);
                }
            }

            string xml = sb.ToString();

            return xml;
        }

 12、不经常使用时间转换

 

//源格式 字符串转为时间 20170709023945000-0700
                string refreshTokenTimeout = model.refresh_token_timeout;
                DateTime dt = DateTime.ParseExact(refreshTokenTimeout, "yyyyMMddHHmmssfffzz00", new CultureInfo("en-GB"));//源格式 时间转化为字符串string time = DateTime.Now.ToString("yyyyMMddHHmmssfffzz00");