1¡¢ response.redirect Õâ¸öÌø×ªÒ³ÃæµÄ·½·¨Ìø×ªµÄËٶȲ»¿ì£¬ÒòΪËüÒª×ß2¸öÀ´»Ø(2´Îpostback)£¬µ«Ëû¿ÉÒÔÌø×ªµ½ÈκÎÒ³Ãæ£¬Ã»ÓÐÕ¾µãÒ³ÃæÏÞÖÆ(¼´¿ÉÒÔÓÉÑÅ»¢Ìøµ½ÐÂÀË)£¬Í¬Ê±²»ÄÜÌø¹ýµÇ¼±£»¤¡£µ«ËÙ¶ÈÂýÊÇÆä×î´óȱÏÝ!redirectÌø×ª»úÖÆ£ºÊ×ÏÈÊÇ·¢ËÍÒ»¸öhttpÇëÇ󵽿ͻ§¶Ë£¬Í¨ÖªÐèÒªÌø×ªµ½ÐÂÒ³Ãæ£¬È»ºó¿Í»§¶ËÔÚ·¢ËÍÌø×ªÇëÇóµ½·þÎñÆ÷¶Ë¡£ÐèҪעÒâµÄÊÇÌø×ªºóÄÚ²¿¿Õ¼ä±£´æµÄËùÓÐÊý¾ÝÐÅÏ¢½«»á¶ªÊ§£¬ËùÒÔÐèÒªÓÃsession¡£
¡¡¡¡2¡¢ server.transfer Ëٶȿ죬ֻÐèÒªÒ»´Îpostback ,µ«ÊÇËû±ØÐëÊÇÔÚͬһ¸öÕ¾µãÏ£¬ÒòΪËüÊÇserverµÄÒ»¸ö·½·¨¡£ÁíÍ⣬ËûÄÜÌø¹ýµÇ¼±£»¤¡£Äã¿ÉÒÔд¸öС³ÌÐòÊÔÊÔ£ºÉè¼ÆÒ»¸öÓÉÒ³ÃæÒ»µ½Ò³Ãæ¶þµÄÌø×ª£¬µ«Òª½øÈëµ½Ò³Ãæ¶þÐèÒªµÇ¼£¬formÈÏÖ¤£¬µ«Èç¹ûÌø×ªÓï¾äʹÓÃtransferµÄ»°£¬ÄǾͲ»»áµ¯³öµÇÂ¼Ò³ÃæÁË¡£Õâ¸ö·½·¨µÄÖØ¶¨ÏòÇëÇóÊÇ·¢ÉúÔÚ·þÎñÆ÷¶Ë£¬ËùÒÔä¯ÀÀÆ÷µÄurlµØÖ·ÈÔÈ»±£ÁôµÄÊÇÔÒ³ÃæµÄµØÖ·!
¡¡¡¡3¡¢ sever.execute Õâ¸ö·½·¨Ö÷ÒªÊÇÓÃÔÚÒ³ÃæÉè¼ÆÉÏÃæ£¬¶øÇÒËû±ØÐëÊÇÌø×ªÍ¬Ò»Õ¾µãϵÄÒ³Ãæ¡£Õâ¸ö·½·¨ÊÇÐèÒª½«Ò»¸öÒ³ÃæµÄÊä³ö½á¹û²åÈëµ½ÁíÒ»¸öaspxÒ³ÃæµÄʱºòʹÓ㬴󲿷ÖÊÇÔÚ±í¸ñÖУ¬½«Ä³Ò»¸öÒ³ÃæÀàËÆÓÚǶÌ׵ķ½Ê½´æÔÚÓÚÁíÒ»Ò³Ãæ¡£
¡¡¡¡×ܽ᣺
¡¡¡¡µ±ÐèÒª°ÑÓû§Ìø×ªµ½Áíһ̨·þÎ ......
Asp.Net¹¹¼Ü(HttpÇëÇó´¦ÀíÁ÷³Ì) - Part.1
ÒýÑÔ
ÎÒ²éÔĹý²»ÉÙAsp.NetµÄÊé¼®£¬·¢ÏÖ´ó¶àÊý×÷Õß¶¼ÊÇÕ¾ÔÚÒ»¸ö±È½Ï¸ßµÄ²ã´ÎÉϽ²½âAsp.Net¡£ËûÃÇÄÍÐÄ¡¢Ï¸ÖµظæËßÄãÈçºÎÒ»²½²½ÍϷſؼþ¡¢ÉèÖÿؼþÊôÐÔ¡¢±àдCodeBehind´úÂ룬ÒÔʵÏÖij¸öÌØ¶¨µÄ¹¦ÄÜ¡£
ÕâÖÖ×ö·¨£¬Êµ¼ÊÉÏÊǻشðÁË“ÈçºÎÈ¥×ö”µÄÎÊÌ⣬ȴûÓлشð“Ϊʲô¿ÉÒÔÕâÑù×ö”µÄÎÊÌâ¡£
¾¡¹ÜÎÒºÜÍÆ³ç Ϥ½»ª ÏÈÉúµÄ¡¶Ê¥µî¼ÀìëµÄAsp.Net¿ª·¢Ïê½â¡·Ò»Ê飬µ«µ±ÎÒ·¿´ÁËÒ»ÏÂÆä¶Ô½ÇÉ«(Role) ºÍ Óû§(Member)µÄ½²½âʱ£¬ÎÒ¾ö¶¨Ìø¹ýÈ¥Ö±½Ó¶ÁºóÃæµÄÕ½ڡ£ÒòΪÎÒ·¢ÏÖËûÒ²ËæÁË´óÁ÷£¬¶ÔÕⲿ·ÖµÄ½²½âÍ£ÁôÔÚ“ÈçºÎÈ¥×ö”µÄ²ãÃæÉÏ¡£ÎÒÏàÐÅÏñϤÏÈÉú ÕâÑùµÄÅ£ÈËÊDz»¿ÉÄܲ»Á˽âµ×²ãÔË×÷ÔÀíµÄ£¬½ö½öÊÇÒòΪÄDZ¾ÊéÔ±¾¾ÍÒѾºÜºñÁ˰ɡ£
µ±Äã°´“ÈçºÎÈ¥×ö”Ëù½²½âµÄÄÚÈÝÈ¥¿ª·¢³ÌÐòµÄʱºò£¬¶ÔÓÚÄãµÄÓû§£¬ÄãÈÔÊÇÒ»Ãû³ÌÐòÔ±£»µ«¶ÔÓÚʵÏÖÁËMembershipProvider ºÍ RoleProvider ³éÏóÀàµÄ΢Èí¿ª·¢ÈËÔ±À´Ëµ£¬ÄãÒѾ³ÉÁËËûÃǵÄÒ»¸öÓû§¡£
NOTE£ºÎҼȲ»·´¶ÔһЩ×÷ÕßÖ»½²½â“ÈçºÎÈ¥×ö”£¬Ò²²»·´¶ÔÄãֻѧ“ÈçºÎÈ¥×ö”£¬ÕâÑùÒ²ÓÐËüµÄºÃ´¦£¬¾ÍÊÇ¿ÉÒÔ¿ìËÙ¿ª·¢¡£ÎÒÖ»Êǽ¨Òé¶àÕÆÎÕÒ»µãµ×²ã֪ʶ£¬¶ÔһР......
»·¾³£º
Windows 2008, VS 2008 SP1, Asp.Net Mvc RC1
------------------------------------------------------------------------------
ÉÏÎÄ£ºAsp.Net Mvc: Model Binding »úÖÆ·ÖÎö ÖУ¬ÎÒÃǼòµ¥·ÖÎöÁËAsp.Net MvcÖÐModel BindingµÄ¹ý³Ì£¬·Ç³£´Ö²Ú£¬±¾ÎĽ«Ì½Ë÷ÈçºÎʵÏÖÒ»¸ö×Ô¼ºµÄModelBinder£¬²¢½øÒ»²½Õ¹Ê¾Ç°ÎĺöÂÔµÄÈô¸Éϸ½Ú¡£
¼ÙÉ裬ÎÒÃÇÏÖÔÚÓÐÒ»¸öBookÀ࣬
ÏÖÔÚÎÒÃÇҪʵÏÖÌí¼ÓBookµÄ¹¦ÄÜ£¬Òò´Ë£¬Ð½¨Ò»¸öBookController£¬²¢ÇÒ¼ÓÈëÒ»¸öAction:
½¨Á¢ÏàÓ¦µÄView£º
Æäʵ£¬µ½ÕâÒ»²½£¬µ±ÎÒÃÇÌá½»±íµ¥µÄʱºò£¬ÔÚActionÀïÃæÒѾ¿ÉÒÔ»ñµÃBook×Ô¶¯°ó¶¨£¬Õâ¹é¹¦ÓÚÄÚ½¨µÄDefaultModelBinder¡£µ«ÊÇ£¬ÎÒÃÇ»ùÓÚijÖÖ¿¼ÂÇ£¬ÏëҪʹÓÃ×Ô¼º´´½¨µÄModelBinder¡£ÓÚÊÇ£¬ÎÒÃǽÓ×Å´´½¨Ò»¸öSimpleModelBinderÀ࣬¸ÃÀàʵÏÖÁËIModelBinder½Ó¿Ú£¨×Ô¶¨ÒåµÄModelBinder±ØÐëʵÏÖÕâ¸ö½Ó¿Ú£©¡£
IModelBinderÖ»ÓÐÒ»¸ö·½·¨BindModel()£¬Õâ¸ö·½·¨½ÓÊÜÁ½¸ö²ÎÊý£ºControllerContext, ModelBindingContext£¬Òò´Ë£¬ÎÒÃÇÔÚʵÏÖÕâ¸ö·½·¨µÄʱºò£¬±ãÐèÒªºÃºÃÀûÓÃÕâÁ½¸ö²ÎÊý°üº¬µÄÐÅÏ¢¡£
ÏÖÔÚÀ´¿´SimpleModelBinderµÄ¾ßÌåʵÏÖ£º
ÉÏÃæ£¬ÎÒ¾¡Á¿±ÜÃâÓ²±àÂ룬ÒòΪÎÒÏ£ÍûÕâ¸öSimpleModelBinder¾ßÓÐÒ»¶¨µÄͨÓà ......
ÉÏÆªÎÄÕÂÖÐ˵µ½Ê²Ã´ÊÇ Cache¶ÔÏó£¬ÈçºÎÔÚASP.NETÖÐʹÓà Cache¶ÔÏó¡£ÏÂÃæÎÒÃÇÀ´ËµËµÈçºÎÔÚASP.NETÖÐɾ³ýÏî¡£
ASP.NET Cache ¶ÔÏóÉè¼ÆÓÃÓÚ±£Ö¤Ëü²¢²»Ê¹Óùý¶àµÄ·þÎñÆ÷ÄÚ´æ¡£½á¹ûÊÇ£¬µ±ÓÃÄÚ´æ±äµÃȱ·¦Ê±£¬Cache¶ÔÏó×Ô¶¯É¾³ý×îÉÙ±»Ê¹ÓõÄÏî¡£Äã¿ÉÒÔͨ¹ý¶¨Òåʱ¼äÏÞÖÆ¡¢ÒÀÀµÏî¡¢ÒÔ¼°Ïî
ÔÚCache¶ÔÏóÖеÄÓÅÏȼ¶À´Ó°Ïì Cache¶ÔÏó±£´æºÍɾ³ýÏîµÄ·½Ê½¡£
Cache¶ÔÏóÖеÄÏîÖ»ÒªÊÇÒÀÀµ»òʱ¼äÏÞÖÆ±»´¥·¢£¬¾ÍÊÇÁ¢¼´±»É¾³ý¡£ÊÔͼ»ñÈ¡±»É¾³ýµÄÏ·µ»ØnullÖµ£¬³ý·ÇÏîÔٴα»Ìí¼Óµ½ Cache¶ÔÏóÖС£
¾ø¶ÔÆÚÏÞ
¡¡¡¡Äã¿ÉÒÔʹÓà AbsoluteEXpiration ²ÎÊýΪÏÒå×î´óµÄ¾ø¶ÔÉú´æÆÚ¡£´Ë²ÎÊýÊÇ DateTime ÀàÐ͵IJÎÊý£¬ÔÊÐíÄãÖ¸¶¨Ïî¹ýÆÚµÄʱ¼ä¡£
¡¡¡¡ÎÒÔÚÏÂÃæµÄ´úÂëÖ¸¶¨ÁË´Ó´´½¨Æð5·ÖÖÓºó£¬myValue ´Ó Cache ¶ÔÏóÖб»É¾³ý£º
Cache.Insert("myKey", myValue, null, DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration);
»¬¶¯ÆÚÏÞ
¡¡¡¡Äã¿ÉÒÔͨ¹ýʹÓà SlidingExpiration ²ÎÊýΪÏÒå×î´óµÄÏà¶ÔÉú´æÆÚ¡£ÕâÊÇÒ»¸ö TimeSpan ÀàÐͲÎÊý£¬ÔÊÐíÄãÖ¸¶¨Ã¿¸ö¶ÔÏó×Ô´Ó×îºóÒ»´Î·ÃÎʺóµÄʱ¼ä¼ä¸ôÒÔ¼°ºÎʱ¶ÔÏóµ½ÆÚ¡£
¡¡¡¡ÎÒÔÚÏÂÃæµÄ´úÂëÖ¸¶¨ÁË myValue ×îºóµÄ·ÃÎʵÄ20·ÖÖÓºó±»´Ó Cache¶ÔÏóÖÐɾ³ý£º
Cache.Ins ......
ÉÏÆªÎÄÕÂÖÐ˵µ½Ê²Ã´ÊÇ Cache¶ÔÏó£¬ÈçºÎÔÚASP.NETÖÐʹÓà Cache¶ÔÏó¡£ÏÂÃæÎÒÃÇÀ´ËµËµÈçºÎÔÚASP.NETÖÐɾ³ýÏî¡£
ASP.NET Cache ¶ÔÏóÉè¼ÆÓÃÓÚ±£Ö¤Ëü²¢²»Ê¹Óùý¶àµÄ·þÎñÆ÷ÄÚ´æ¡£½á¹ûÊÇ£¬µ±ÓÃÄÚ´æ±äµÃȱ·¦Ê±£¬Cache¶ÔÏó×Ô¶¯É¾³ý×îÉÙ±»Ê¹ÓõÄÏî¡£Äã¿ÉÒÔͨ¹ý¶¨Òåʱ¼äÏÞÖÆ¡¢ÒÀÀµÏî¡¢ÒÔ¼°Ïî
ÔÚCache¶ÔÏóÖеÄÓÅÏȼ¶À´Ó°Ïì Cache¶ÔÏó±£´æºÍɾ³ýÏîµÄ·½Ê½¡£
Cache¶ÔÏóÖеÄÏîÖ»ÒªÊÇÒÀÀµ»òʱ¼äÏÞÖÆ±»´¥·¢£¬¾ÍÊÇÁ¢¼´±»É¾³ý¡£ÊÔͼ»ñÈ¡±»É¾³ýµÄÏ·µ»ØnullÖµ£¬³ý·ÇÏîÔٴα»Ìí¼Óµ½ Cache¶ÔÏóÖС£
¾ø¶ÔÆÚÏÞ
¡¡¡¡Äã¿ÉÒÔʹÓà AbsoluteEXpiration ²ÎÊýΪÏÒå×î´óµÄ¾ø¶ÔÉú´æÆÚ¡£´Ë²ÎÊýÊÇ DateTime ÀàÐ͵IJÎÊý£¬ÔÊÐíÄãÖ¸¶¨Ïî¹ýÆÚµÄʱ¼ä¡£
¡¡¡¡ÎÒÔÚÏÂÃæµÄ´úÂëÖ¸¶¨ÁË´Ó´´½¨Æð5·ÖÖÓºó£¬myValue ´Ó Cache ¶ÔÏóÖб»É¾³ý£º
Cache.Insert("myKey", myValue, null, DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration);
»¬¶¯ÆÚÏÞ
¡¡¡¡Äã¿ÉÒÔͨ¹ýʹÓà SlidingExpiration ²ÎÊýΪÏÒå×î´óµÄÏà¶ÔÉú´æÆÚ¡£ÕâÊÇÒ»¸ö TimeSpan ÀàÐͲÎÊý£¬ÔÊÐíÄãÖ¸¶¨Ã¿¸ö¶ÔÏó×Ô´Ó×îºóÒ»´Î·ÃÎʺóµÄʱ¼ä¼ä¸ôÒÔ¼°ºÎʱ¶ÔÏóµ½ÆÚ¡£
¡¡¡¡ÎÒÔÚÏÂÃæµÄ´úÂëÖ¸¶¨ÁË myValue ×îºóµÄ·ÃÎʵÄ20·ÖÖÓºó±»´Ó Cache¶ÔÏóÖÐɾ³ý£º
Cache.Ins ......
ʲôÊÇCache¶ÔÏó?
ÄãÔÚÉú³É¸ßÐÔÄÜÍøÂçÓ¦ÓóÌÐòʱËùÓöµ½µÄÒ»¸öÎÊÌâ¾ÍÊÇÐèÒª±ÜÃâÖØ¸´¡£Ò»¸öCache¶ÔÏóÔÊÐíÔÚËüÃǵÚÒ»´Î±»ÇëÇóʱÔÚÄÚ´æÖлº´æÏȻºó½«±»»º´æµÄ¸±±¾ÓÃÓÚÒÔºóµÄÇëÇó¡£Ê¹Óñ»»º´æµÄ¸±±¾ÔÊÐíÄã±ÜÃâÖØ½¨Âú×ãÒÔǰÇëÇóµÄÐÅÏ¢£¬ÌرðÊÇÄÇЩÿ´Î´´½¨Ê±¶¼ÐèÕ¼ÓÐÃ÷ʾµÄ·þÎñÆ÷ÉϵĴ¦ÀíÆ÷ʱ¼äµÄÃüÁî¡£
³ý»º´æ¸ö±ðÏÈ绺´æÖеļÆËã½á¹ûÒÔÍ⣬Asp.netÌṩһ¸öÊä³ö»º´æ¿ÉÓÃÓÚ±£´æÍøÒ³ºÍÓû§¿Ø¼þ¡£Cache¶ÔÏóºÍÊä³ö»º´æÊÇÓµÓÐÏàͬµÄ½ÇÉ«ºÍÊôÐÔ£¬µ«ËüÃÇÊǽÔÈ»²»Í¬µÄÁ½ÖÖ¶ÔÏó¡£
ASP.NETÌṩһ¸öÈ«ÌØÐԵĻº´æÒýÇæ£¬ÓÃÓÚ±£´æºÍ»ñÈ¡ÐÅϢƬ¶Î¡£Cache¶ÔÏóûÓйØÓÚËüËù°üº¬µÄµÄÏîµÄÐÅÏ¢¡£Cache¶ÔÏó½ö°üº¬¶ÔÓÚÄÇЩ¶ÔÏóµÄÒýÓÃÒÔ¼°ÌṩËüÃǵÄÒÀÀµÏîºÍÉèÖùýÆÚ²ßÂÔ¡£Cache»¹Ìṩ·½·¨ÔÚÏàÍ¬ÍøÂçÓ¦ÓóÌÐòµÄÍøÒ³Ö®¼ä´«µÝÖµ¡£»º´æ·½·¨ÊµÏÖ×Ô¶¯µÄËø£¬ËùÒÔ£¬ÖµÔÚ±»¶à¸öÒ³²¢·¢·ÃÎÊʱÊǰ²È«µÄ¡£
ÄÇôCache¶ÔÏóÊÇÈçºÎ¹¤×÷µÄÄÄ£¿
ʹÓÃCache¶ÔÏóµÄµÄ¹ý³ÌÊÇ£º
¡¡¡¡1. Ò³ÃæÇëÇóµÄÏî±»±êʶΪÒѾÔÚCache¶ÔÏóÖб£´æ¡£
¡¡¡¡2. ASP.NET ¼ì²é Cache ¶ÔÏó²¢ÓÃÒÑ»º´æµÄ°æ±¾À´¾ö¶¨ÊÇ·ñ¿ÉÓá£
¡¡¡¡3. Èç¹û»º´æµÄ°æ±¾²»¿ÉÓã¬ASP.NET ÖØÐ´´½¨ÏʹÓôËÏȻºó½«Ëü±£´æÔÚCache¶ÔÏóÒÔ±¸ ......
ʲôÊÇCache¶ÔÏó?
ÄãÔÚÉú³É¸ßÐÔÄÜÍøÂçÓ¦ÓóÌÐòʱËùÓöµ½µÄÒ»¸öÎÊÌâ¾ÍÊÇÐèÒª±ÜÃâÖØ¸´¡£Ò»¸öCache¶ÔÏóÔÊÐíÔÚËüÃǵÚÒ»´Î±»ÇëÇóʱÔÚÄÚ´æÖлº´æÏȻºó½«±»»º´æµÄ¸±±¾ÓÃÓÚÒÔºóµÄÇëÇó¡£Ê¹Óñ»»º´æµÄ¸±±¾ÔÊÐíÄã±ÜÃâÖØ½¨Âú×ãÒÔǰÇëÇóµÄÐÅÏ¢£¬ÌرðÊÇÄÇЩÿ´Î´´½¨Ê±¶¼ÐèÕ¼ÓÐÃ÷ʾµÄ·þÎñÆ÷ÉϵĴ¦ÀíÆ÷ʱ¼äµÄÃüÁî¡£
³ý»º´æ¸ö±ðÏÈ绺´æÖеļÆËã½á¹ûÒÔÍ⣬Asp.netÌṩһ¸öÊä³ö»º´æ¿ÉÓÃÓÚ±£´æÍøÒ³ºÍÓû§¿Ø¼þ¡£Cache¶ÔÏóºÍÊä³ö»º´æÊÇÓµÓÐÏàͬµÄ½ÇÉ«ºÍÊôÐÔ£¬µ«ËüÃÇÊǽÔÈ»²»Í¬µÄÁ½ÖÖ¶ÔÏó¡£
ASP.NETÌṩһ¸öÈ«ÌØÐԵĻº´æÒýÇæ£¬ÓÃÓÚ±£´æºÍ»ñÈ¡ÐÅϢƬ¶Î¡£Cache¶ÔÏóûÓйØÓÚËüËù°üº¬µÄµÄÏîµÄÐÅÏ¢¡£Cache¶ÔÏó½ö°üº¬¶ÔÓÚÄÇЩ¶ÔÏóµÄÒýÓÃÒÔ¼°ÌṩËüÃǵÄÒÀÀµÏîºÍÉèÖùýÆÚ²ßÂÔ¡£Cache»¹Ìṩ·½·¨ÔÚÏàÍ¬ÍøÂçÓ¦ÓóÌÐòµÄÍøÒ³Ö®¼ä´«µÝÖµ¡£»º´æ·½·¨ÊµÏÖ×Ô¶¯µÄËø£¬ËùÒÔ£¬ÖµÔÚ±»¶à¸öÒ³²¢·¢·ÃÎÊʱÊǰ²È«µÄ¡£
ÄÇôCache¶ÔÏóÊÇÈçºÎ¹¤×÷µÄÄÄ£¿
ʹÓÃCache¶ÔÏóµÄµÄ¹ý³ÌÊÇ£º
¡¡¡¡1. Ò³ÃæÇëÇóµÄÏî±»±êʶΪÒѾÔÚCache¶ÔÏóÖб£´æ¡£
¡¡¡¡2. ASP.NET ¼ì²é Cache ¶ÔÏó²¢ÓÃÒÑ»º´æµÄ°æ±¾À´¾ö¶¨ÊÇ·ñ¿ÉÓá£
¡¡¡¡3. Èç¹û»º´æµÄ°æ±¾²»¿ÉÓã¬ASP.NET ÖØÐ´´½¨ÏʹÓôËÏȻºó½«Ëü±£´æÔÚCache¶ÔÏóÒÔ±¸ ......
string[] files = Directory.GetDirectories(Server.MapPath("Themes/"));
ÏÈÉùÃ÷ÁËÒ»¸ö×Ö·ûÊý×飬mapPath·½·¨µÃµ½µÄÊÇÒ»¸ö¾ø¶Ô·¾¶¡£
ÒòΪGetFiles·µ»ØµÄÊÇÒ»¸östring[]Êý×飬ËùÒÔÓà filesÀ´½ÓÊÕËü¡£
È»ºóÎÒÃÇÔÚÓÃÒ»¸öforeachÑ»·À´±éÀúÕâ¸öÊý×飬ȡ³öËùÓÐÖµ¡£
foreach (string file in files)
{
Response.Write(Path.GetFileNameWithoutExtension(file) + "<br />");
} ......