编程技巧 - 文章列表

  • ASP.NET教程系列1-ASP.NET编程模型

    一、HTTP协议:1、HTTP协议是什么我们在浏览器的地址栏里输入的网站地址叫做URL(UniformResourceLocator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。因此,在我们认识HTTP之前,有必要先弄清楚URL的组成,例如:http://www.microsoft.com/china/index.htm。它的含义如下:http://:代表超文本传

  • [翻译] ASP.NET MVC Tip #10 – 防止URL操作攻击

    原文地址:http://weblogs.asp.net/stephenwalther/archive/2008/06/26/prevent-url-manipulation-attacks.aspx\n摘要:在这个Tip中,Stephen Walther介绍了黑客如何通过操作URL从ASP.NET MVC网站中窃取敏感信息。Stephen Walther还探讨了如何构建单元测试来防止这类攻击。\n在一个网站上,黑客可以通过URL操作攻击来简单地访问其他用户的数据。如果你通过记录的ID来获取数据记录,而又没有针对每个数据库请求检查是否是由正确的用户发起的请求,则任何人都可以读取其他用户的数据库记

  • ExtJs2.0学习教程(12)–Ext.TreePanel之第一式

    今天开始,我们就开始一起学习TreePanel了,道个歉,上篇的代码很乱阿.我总是喜欢用最简单的例子开始,去理解最基本的使用方法,减少对i后面高级使用的干扰!TreePanel是继承自Panel,所以很多在Panel中谈到的属性这里可能会一笔带过,如有问题,请参考ExtJs2.0学习教程(2)–Ext.Panel 1.第一个静态树–最简单的树效果图:html代码:\n<!–\nCode highlighting produced by Actipro CodeHighlighter (freeware)\nhttp://www.CodeHighligh

  • ASP.NET教程系列2-页面生命周期详解

    上个系列中介绍了页面生命周期的整体流程,可能有些读者还想更进一步了解整个生命周期的细节,限于篇幅我不可能讲到所有细节,也没必要,这里仅举几个例子,大家可以通过这几个例子学习一下页面生命周期的研究方式。Control类中有如下事件// 当服务器控件绑定到数据源时发生。public event EventHandler DataBinding;\n// 当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。public event EventHandler Disposed;\n// 当服务器控件初始化时发生;初始化是控件生存期的第一步。p

  • ExtJs2.0学习教程(13)–Ext.TreePanel之第二式

    昨天有朋友说,在IE下有的时候ashx传过来的节点不能加载,其实我也出现这样的问题,很是烦人!今天extjs上看到了一个解决方案,觉得很好:如果treeLoader加载失败,会继续加载,直到成功加载。4.解决IE下非正常加载节点问题即使从服务器取到大量的数据,也没有问题。......基本代码一样,只有js代码的loader小小的修改下:\n<!–\nCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/\n–> loader

  • ASP.NET技巧:防止ASP.NET按钮多次提交的办法

    网上查了很多方法,都不太好使,不如自己写一个,思路就是把按钮按下时用Javascript在客户端把按钮下一次的onclick事件改为return false; 这样在服务器端页面重新送回客户端之前,再次点击按钮都不会Post到服务端。同时将按钮的style改为一行字的样子,光标也变成沙漏状。当服务端页面重新产生后Button又会回到初始状态。该方法对于F5刷新还不能防范,只是简单封闭了F5的按键,为了防止刷新时再次提交可以在页面返回前将一些TextBox控件清空,这样就可以判断如果该TextBox为空则不再进行后续操作(如写库)。 或是后台操作成功后跳转到另一个页面以防止恶意刷新。主要是考虑在

  • ExtJs2.0学习教程(14)–Ext.TreePanel之第三式(可增删改的树)

    继续tree的learn! 今天就来个可增删改的树吧,操作数据库就使用比较方便的Linq,无非就是增删改!\nLinqData.dbml:html代码:\n<!–\nCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/\n–><body> <div id=”container” style=”float:left; margin-right:10px;&#8221

  • ASP.NET MVC 多语言解决方案

    现在ASP.NET MVC 已经出了第四版了,现在多了很多特性,但是如何在 ASP.NET MVC 下方便的实现多语言特性呢?\n就一个网站的多语言特性来说,我认为分为两个方面:\n1、HTML界面上显示的文字需要多语言\n2、HTML界面上JS输出的文字需要多语言\n原来在HTML部分直接写的文字都不能直接写要输出的文字,而是要采用标记的方法来替换。JS也是同理。\n那么在MVC下怎么能透明的实现多语言呢?所谓透明的实现是指,程序员在开发程序当中,不需要过多的考虑多语言的问题,直接调用一个方法就能实现多语言,而且所要用到的语言文件每个语言一个文件就够了,集中翻译这个语言就完成了多语言的功能。

  • ASP.NET技巧:ASP.NET验证技术详解

    在表单提交的时候,经常需要对录入信息的长度、格式、内容等进行验证,以便获得合理的信息。\n在ASP.NET开发中主要的验证方法,我总结了一下,主要有一下几种,如有不足之处请朋友们予以指出。\n1、使用验证控件 这属于客户端验证,微软开发人员将最常用的验证功能进行了封装,使得我们开发效率明显提高,而且特别是自定义验证控件,非常灵活,我们可以自行设计验证逻辑。但是验证控件收到了浏览器的限制,记得在一次开发过程中,使用FireFox浏览器进行浏览,发现所有的验证控件失灵,这个并非是ASP.NET设计的漏洞,只能说浏览器标准的不唯一造成的。 ASP.NET公有六种验证控件,分别如下

  • [翻译] ASP.NET MVC Tip #11 – 使用标准的控制器操作名称

    原文地址:http://weblogs.asp.net/stephenwalther/archive/2008/06/27/asp-net-mvc-tip-11-use-standard-controller-action-names.aspx\n摘要:在这个Tip中,Stephen Walther建议你为控制器操作使用标准的名字,这样可以使你的代码对其他开发者更明晰。 \n采用命名约定可以使其他开发者——以及你自己将来——更容易阅读你的代码。命名约定还可以为你节省时间,可以避免费力去讨论“正确的”命名方式。在这个Tip中,我建议为ASP.NET MVC控制器操作使用标准的名字。\n下面这个表