祥叔学编程

祥叔学编程
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Asp.Net

摘要:最近在开发一个新浪微博的第三方应用的项目(http://apps.weibo.com/weilvyou),在项目中用到了session 。在测试时发现session 取不到值,以为是session赋值除了问题,但是在Chrome中一切正常,故排除此原因。那问题肯定出在浏览器身上里。于是一步一步调试,发现在IE中,如果页面跳转,SessionId 就改变了,问题找到了。然后看了人家其他的一些App,发现他们的请求中有这样一项头部信息——P3P。出于隐私安全的考虑,IE会丢失Iframe中的Cookie,IE6/IE7支持的P3P(Platform for Privacy Preferences 阅读全文

posted @ 2012-09-09 12:18 祥叔 阅读(7258) 评论(2) 推荐(0) 编辑

摘要:用关键字 virtual 修饰的方法,叫虚方法。可以在子类中用override 声明同名的方法,这叫“重写”。相应的没有用virtual修饰的方法,我们叫它实方法。 重写会改变父类方法的功能。在子类中用 new 关键字修饰 定义的与父类中同名的方法,叫覆盖。重写不会改变父类方法的功能。1:不管是重写还是覆盖都不会影响父类自身的功能(废话,肯定的嘛,除非代码被改)。 2:当用子类创建父类的时候,重写会改变父类的功能。 3:虚方法、实方法都可以被覆盖(new),抽象方法,接口 不可以。 4:抽象方法,接口,标记为virtual的方法可以被重写(override),实方法不可以。 5:重写使用的频率比较高,实现多态;覆盖用的频率比较低,用于对以前无法修改的类进行继承的时候。 阅读全文

posted @ 2012-04-14 13:16 祥叔 阅读(19685) 评论(14) 推荐(19) 编辑

摘要:在开发中有时要在后台获得某个View 或者 PartialView 生成的字符串,只要你熟悉Asp.Net MVC 生命周期就能理解和敲出下面的代码。没什么高深的,直接上代码:1,输出ViewHTML字符串: ///<summary>///描述:输出ViewHTML字符串///</summary>///<paramname="controller"></param>///<paramname="viewName">视图文件名</param>///<paramname=" 阅读全文

posted @ 2012-01-14 21:31 祥叔 阅读(5197) 评论(11) 推荐(5) 编辑

摘要:现在做网站都追求用户体验,那么ajax自然就必不可少。如果您用过Asp.Net MVC ,你会发现Asp.Net MVC 和jQuery 配合的非常默契(事实上jQuery已经成了微软的御用脚本库了),你可以用jQuery直接去异步加载一个PartialView(即.ascx用户控件)。如:$("#div").load("Controler/UserList.ascx");但是在webForm模式下就没这么幸福了, 如果你也这样去load一个用户控件,它会报错:"由于已明确禁止所请求的页类型,无法对该类型的页提供服务。扩展名“.ascx”可能不正确。 请检查以下的 URL 并确保其拼写正确"。   那我们就甘心放弃这样一种让人兴奋的方法,回去像以前那样一句一句的拼接字符串嘛?那样做不仅工作量大,而且繁琐易错,美工给的静态页面也不能拿来直接用,遇到引号还要转义。   我想,你肯定和我一样都不甘心放弃这种“load”方法,那我们就自己来实现吧。 阅读全文

posted @ 2010-05-04 23:57 祥叔 阅读(4452) 评论(19) 推荐(6) 编辑

摘要:在WebForm下 开发ajax程序,需要借助于一般处理程序(*.ashx)或web服务(*.asmx),并且每一个ajax请求,都要建一个这样的文件,如此一来,如果在一个项目中ajax程序多了,势必会产生一堆的.ashx或.asmx,虽然于程序本身无碍,但那一堆文件看上去总觉得有伤大雅。那么可不可以丢掉这些.ashx和.asmx,选择一种更简练的方式来做ajax程序呢。 答案是肯定的,那就是:WebMethod 。WebMethod方法写在各个aspx页面里很零散,那么你可以专门建一个页面(如:WebMethods.aspx)来存放。 阅读全文

posted @ 2010-05-04 23:41 祥叔 阅读(9135) 评论(20) 推荐(5) 编辑

摘要:在WebForm 显示列表数据我们一般使用服务器控件Repeater、DataList或者GridView ,功强大能,使用简单。但同时也是有代价的, 一:不管你用哪个控件都需要牺牲一些额外的性能,因为他们的生命周期很复杂。 二:绑定数据时不够灵活,显示的过程是不透明的,想随心所欲的对某一行进行额外的控制会很麻烦。 三:会生成一对“垃圾代码”,增加页面生成和显示的负担。 四:对css样式的控制不够灵活,如果是团队合作,和美工沟通起来有点麻烦,美工设计好的静态页面开发人员甚至不能直接拿来用   所以放弃这些控件,直接写代码生成数据列表便能解决上面所有问题,这也是最透明,最灵活,最干净的显示方式,那我们就这样做吧。 阅读全文

posted @ 2010-05-04 23:14 祥叔 阅读(1230) 评论(11) 推荐(1) 编辑