ASP.NET特辑笔记

1、Cookie在客户端的浏览器中以键值对的形式存储,且客户端向服务器发出请求时会自动带上Cookie
,Cookie不能跨浏览器访问
2、HttpCookie cookie = SetCookie(new HttpCookie("Age","30")),这种形式设置的Cookie的生命周期是浏览器的生命周期
3、HttpCookie cookie = SetCookie(new HttpCookie("Age","30"));
   cookie.Expires=DateTime.Now.AddDay(1);//最大时限
这么设置的话,Cookie的保存时间最多可以保存1天
4、static在.net framework 运行的时候一直存在,就可以在服务器端保存,相当于Session
5、List<Person> list=new List<Person>();
   JavaScriptSerializer  jss=new JavaScriptSerializer  ();
   string json=jss.Serialize(list);//把list集合Json序列化
6、var person = JSON.parse(jss);(还需要引用json2.js,为了兼容低版本的浏览器)
   for(i=0;i<person.length;i++)//person是集合的话需要遍历
   {
       var p = person[i];
       alert(p.Name);
   }
7、XSS跨站脚本
8、CKEditor: var zhengwen = document.getElementById("ZhengWen");
   CKEDITOR.repalce(zhengwen);
9、不要把图片或文件直接存到数据库中,在数据库中存放一个映射地址就行
10、//获得浏览器上传的文件信息(<input type="file" name="ProductImage"....)
    HttpPostedFile productimg=context.Request.Files["ProductImage"];
    //如果表单中有input为image,则form要设置post和enctype
    <form method="post" enctype="multipart/form-data"></form>
11、上传的文件为了防止重名,可以用Guid或者文件内容的Md5值作为文件名
12、http://test.com/aaa/a.htm 
    图片路径:image/a/jpg     表示在a.htm同文件夹下的image文件夹中  http://test.com/aaa/image/a/jpg
    图片路径:/image/a/jpg    表示在根目录文件夹下的image文件夹   http://test.com/image/a/jpg
13、在网络中传输数据用字节数组
14、分页:select *,row_number() over (order by id asc) as num from persons
15、天花板函数:Math.Ceiling(totalCount/10)
16、不要把DataTable等复杂对象直接通过Json传递给客户端,一般应该只传递基本类型或者POCO(Plain Object c# Object,简单的类,只有属性的类)
17、DataTable dt=...... 
    object[] comments = new object[dt.Rows.Count];
    for(i=0;i<comments.Length;i++)
    {
         DataRow dr = dt.Rows[i];
         comments[i] = new { Title=dr["Title"],Msg = dr["Msg"]};
    }
    string json = new JavaScriptSerializer().Serialize(comments);
    context.Response.Write(json);


18、this.GetType()获取当前实例的对象的类型

19、只要修改服务器控件的值,就会把数据保存到VS自带的ViewState中

20、ScriptManager/UpdatePanel实现局部刷新,原理跟AJAX一样,但是它浪费流量,因为它把服务器处理完返回的HTML覆盖原有的UpdatePanel里的控件

21、dt.Id点出来的属性叫强类型,dt["Id"]这种叫弱类型,容易出错

22、没有Name属性,表单不会提交

23、<%:%>相当于<%=Html.Encode()%>

24、路由规则是可以更改的

25、自定义的MyHtmlHelper扩展方法三要素:静态类、静态方法、this关键字;两个问题:1、字符串被编码化(在类中加new HtmlHelper())2、命名空间每次都要引用(把MyHtmlHelper类的命名空间改为HtmlHelper所在的命名空间)

26、$(function(){}) / JQuery方法是在DOM组件加载完成后执行,而不是整个窗体加载完成后再执行

27、Request.QueryString["Id"]获取URL链接中的参数 / Request["Id"]获取标签的name属性为Id的value值

28、Session共享时可用缓存服务器保存Session,推荐MemCached/redis,必须集群使用

29、负载均衡服务器三大功能:1、转发;2、故障移除;3、恢复添加

30、rezar引擎用@符输出,aspx引擎用<%%>符输出

31、路由规则:1、可以有多条路由规则;2、路由规则是有顺序的

32、路由调试设置代码:RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

你可能感兴趣的:(asp.net)