indulge3 发表于 2015-7-3 17:07:00

JS与C#在脚本中的妙用

1.list变量转换为文本型变量(C#)

stringDic["文本变量"] = string.Join(",", listDic["List变量"].ToArray());listDic["List变量"]中的 “List变量” 是需要处理的list,stringDic["文本变量"]中的 "文本变量"是处理后的数据保存的变量,这些需要事先在浏览器的变量管理建好。","是连接 list中的值的连接符。

2.计数器变量转换为文本型变量(C#)

public static void Execute(Dictionary<string, string> stringDic,Dictionary<string, List<string>> listDic, Dictionary<string, int> intDic)
      {
stringDic["文本"]=Convert.ToString(intDic["计数器"]);
      }
3.JS转换文本变量的大小写

var a='{-var.a-}'.toLowerCase();
a;
4.C#实现字符反转排序

public static void Execute(Dictionary<string, string> stringDic,Dictionary<string, List<string>> listDic, Dictionary<string, int> intDic)
      {
             char[] cs = stringDic["文本"].ToCharArray();
            char temp;
            int len = cs.Length;
            for (int i = 0; i < cs.Length / 2 ; i++)
            {
                temp = cs;
                cs = cs;
                cs = temp;
            }
            stringDic["文本_2"] = new string(cs);
                  }
5.使用C#代码保存使用Base64字符显示的图片
      /// <summary>
      /// 网页中的样式为    <img class="img" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4xxx";
      /// 使用浏览器提取到src的内容,比如本次将结果存在“图片”字符串变量中,然后使用C#代码进行处理
      /// </summary>
      /// <param name="stringDic"></param>
      /// <param name="listDic"></param>
      /// <param name="intDic"></param>
      public static void Execute(Dictionary<string, string> stringDic, Dictionary<string, List<string>> listDic, Dictionary<string, int> intDic)
      {
            string base64 = stringDic["图片"];
            string[] arr = base64.Split(',');
            if (arr.Length != 2) throw new System.Exception("错误的base64图片格式");
            base64 = arr;
            byte[] bytes = Convert.FromBase64String(base64);
            string savedir = AppDomain.CurrentDomain.BaseDirectory + "base64img//";
            if (!System.IO.Directory.Exists(savedir)) System.IO.Directory.CreateDirectory(savedir);
            System.IO.File.WriteAllBytes(savedir + System.IO.Path.GetRandomFileName() + ".jpg", bytes);//随机文件名保存
      }

6.JS点击下一页

类似于这样的POST页面,可直接运行JS代码打开下一页

__doPostBack('ctl00$Content$GridView1','Page$3')
7.JS实现变量赋值的两种方法
方法一:

function aa(){
var a=1234;
return a;
}
aa();
方法二:

var a=54321;
a;
8.C#获取一随机数

public static void Execute(Dictionary<string, string> stringDic,Dictionary<string, List<string>> listDic, Dictionary<string, int> intDic)
   {
Random ran=new Random();
intDic["随机数字"]=ran.Next(1,8);

      }注:这段代码返回的是1到8中的一个随机数

9.JS 实现时间戳的转换

function getLocalTime(nS) {   
       return new Date(parseInt(nS) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");      
    }   
    getLocalTime({-var.时间戳-});
10.C#截取list变量中前N条数据
比如说一个list有6条数据,我只需要前面4条。这个则可以用C#来实现

public static void Execute(Dictionary<string, string> stringDic,Dictionary<string, List<string>> listDic, Dictionary<string, int> intDic)
      {
List<string> list = new List<string>();
list=listDic["测试"];
listDic["测试"]=list.Take(4).ToList<string>();
      }
11.使用C#实现list乱序排布 public static void Execute(Dictionary<string, string> stringDic,Dictionary<string, List<string>> listDic, Dictionary<string, int> intDic)
      {
var rnd = new Random();
listDic["变量名"]= listDic["变量名"].OrderBy(item => rnd.Next()).ToList();
      }
12.用C#获取当前时间


public static void Execute(Dictionary<string, string> stringDic,Dictionary<string, List<string>> listDic, Dictionary<string, int> intDic)
      {
stringDic["当前时间"]=DateTime.Now.ToString();
      }



haifding 发表于 2015-7-4 07:06:54

这么好的东西今天才发现,:lol

星雨 发表于 2015-7-4 09:57:49


这么好的东西今天才发现

win-ever 发表于 2015-7-23 18:27:50

这是必须收藏的帖子哦~:P

130007732 发表于 2015-10-3 16:51:24

不懂JS也不懂C#怎么办?:dizzy:

softnm 发表于 2015-10-6 20:27:05

非常不错,有点编程基础。

acmilan 发表于 2016-1-18 15:51:30

list变量转换为文本型变量可以用 js 实现吗

梦一梦 发表于 2016-1-19 09:37:57

acmilan 发表于 2016-1-18 15:51
list变量转换为文本型变量可以用 js 实现吗

可以,看下这个帖子:http://faq.locoy.com/q-1147.html

datafinder 发表于 2016-2-16 11:13:48

c#代码将格式时间与时间戳转换:
// 时间戳转为C#格式时间
      private DateTime StampToDateTime(string timeStamp)
      {
            DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            long lTime = long.Parse(timeStamp + "0000000");
            TimeSpan toNow = new TimeSpan(lTime);
            
            return dateTimeStart.Add(toNow);
      }

      // DateTime时间格式转换为Unix时间戳格式
      private int DateTimeToStamp(System.DateTime time)
      {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
            return (int)(time - startTime).TotalSeconds;
      }

acmilan 发表于 2016-3-2 13:56:42

收藏啦 是必须得有return 语句吧 !!
页: [1] 2
查看完整版本: JS与C#在脚本中的妙用