ASP.NET½«WebÕ¾µãϵľø¶Ô·¾¶×ª»»ÎªÐéÄâ·¾¶
ASP.NET½«WebÕ¾µãϵľø¶Ô·¾¶×ª»»ÎªÐéÄâ·¾¶
2009-11-25 10:39
ºÜ¾³£Ê¹Óõ½µÄÒ»¸ö¹¦ÄÜ,µ«ÔÚÔÚÍøÉÏȴһֱûÓÐÕÒµ½Ïà¹ØµÄ½â¾ö·½·¨,½ñÌì½è×ÅÏîĿӦÓõ½µÄ»ú»áдÁËÁ½¸ö½«¾ø¶Ô·¾¶×ª»»ÎªÐéÄâ·¾¶·â×°ºÃµÄ·½·¨
¡¡¡¡½«WebÕ¾µãϵľø¶Ô·¾¶×ª»»ÎªÏà¶ÔÓÚÖ¸¶¨Ò³ÃæµÄÐéÄâ·¾¶
¡¡¡¡/**//// <summary>
¡¡¡¡/// ½«WebÕ¾µãϵľø¶Ô·¾¶×ª»»ÎªÏà¶ÔÓÚÖ¸¶¨Ò³ÃæµÄÐéÄâ·¾¶
¡¡¡¡/// </summary>
¡¡¡¡/// <param name="page">µ±Ç°Ò³ÃæÖ¸Õ룬һ°ãΪthis</param>
¡¡¡¡/// <param name="specifiedPath">¾ø¶Ô·¾¶</param>
¡¡¡¡/// <returns>ÐéÄâ·¾¶, ÐÍÈç: ../../</returns>
¡¡¡¡public static string ConvertSpecifiedPathToRelativePathForPage(Page page, string specifiedPath)
¡¡¡¡{
¡¡¡¡ // ¸ùĿ¼ÐéÄâ·¾¶
¡¡¡¡ string virtualPath = page.Request.ApplicationPath;
¡¡¡¡ // ¸ùĿ¼¾ø¶Ô·¾¶
¡¡¡¡ string pathRooted = HostingEnvironment.MapPath(virtualPath);
¡¡¡¡ // Ò³ÃæÐéÄâ·¾¶
¡¡¡¡ string pageVirtualPath = page.Request.Path;
¡¡¡¡ if (!Path.IsPathRooted(specifiedPath) || specifiedPath.IndexOf(pathRooted) == -1)
¡¡¡¡ {
¡¡¡¡ throw new Exception(string.Format("\"{0}\"ÊÇÐéÄâ·¾¶¶ø²»ÊǾø¶Ô·¾¶!", specifiedPath));
¡¡¡¡ }
¡¡¡¡ // ת»»³ÉÏà¶Ô·¾¶
¡¡¡¡ //(²âÊÔ·¢ÏÖ£¬pathRooted ÔÚ VS2005 ×Ô´øµÄ·þÎñÆ÷¸úÔÚIISϸùĿ¼»òÕßÐéÄâĿ¼ÔËÐÐËÆºõ²»Ò»Ñù,
¡¡¡¡ // Óд˵ط½ºóÃæ»á¼Ó"\", ÓÐЩÔò²»»á, Ϊ±£ÏÕÆð¼ûÅжÏÒ»ÏÂ)
¡¡¡¡ if (pathRooted.Substring(pathRooted.Length - 1, 1) == "\\")
¡¡¡¡ {
¡¡¡¡ specifiedPath = specifiedPath.Replace(pathRooted, "/");
¡¡¡¡ }
¡¡¡¡ else
¡¡¡¡ {
¡¡¡¡ specifiedPath = specifiedPath.Replace(pathRooted, "");
¡¡¡¡ }
¡¡¡¡ string relativePath = specifiedPath.Replace("\\", "/");
¡¡¡¡ string[] pageNodes = pageVirtualPath.Split('/');
¡¡¡¡ // ¼õÈ¥×îºóÒ»¸öÒ³ÃæºÍÇ°ÃæÒ»¸ö "" Öµ
¡¡¡¡ int pageNodesCount = pageNodes.Length - 2;
¡¡¡¡ for (int i = 0; i < pageNodesCount; i++)
¡¡¡¡ {
¡¡¡¡ relativePath = "/.." + relativePath;
¡¡¡¡ }
¡¡¡¡ if (pageNodesCount > 0)
¡¡¡¡ {
¡¡¡¡ // Èç¹û´æÔÚ ".." , Ôò°Ñ×îÇ°ÃæµÄ "/" È¥µô
¡¡¡¡ relativePath = relativePath.Substring(1, relativePath.Leng
Ïà¹ØÎĵµ£º
Panel Web ·þÎñÆ÷¿Ø¼þÔÚ ASP.NET ÍøÒ³ÄÚÌṩÁËÒ»ÖÖÈÝÆ÷¿Ø¼þ£¬Äú¿ÉÒÔ½«ËüÓÃ×÷¾²Ì¬Îı¾ºÍÆäËû¿Ø¼þµÄ¸¸¼¶¡£
Ò»¡¢±³¾°
¿ÉÒÔ½« Panel ¿Ø¼þÓÃ×÷ÆäËû¿Ø¼þµÄÈÝÆ÷¡£µ±ÒÔ±à³Ì·½´´½¨ÄÚÈݲ¢ÐèÒªÒ»ÖÖ½«ÄÚÈݲåÈëµ½Ò³Öеķ½·¨Ê±£¬´Ë·½·¨ÓÈΪÊÊÓá£ÒÔϲ¿·ÖÃèÊöÁË¿ÉÒÔʹÓà Panel ¿Ø¼þµÄÆäËû·½· ......
protected override void Render(HtmlTextWriter writer)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htm ......
ÎÊÌ⣺µ±Ò»¸öÕýÔÚÖ´ÐÐÖеÄASPXÒ³ÃæÖ´Ðе½Ò»°ëµÄʱºò£¬ä¯ÀÀÆ÷ÖÐÄã¹Ø±ÕÁËÕâ¸öÒ³Ãæ£¬·þÎñÆ÷¶Ë¶ÔÓ¦µÄÕâ¸öÒ³ÃæµÄ´úÂëÈÔÈ»ÔÚÖ´ÐÐô£¿
´ð°¸£º³ý·ÇÄã´úÂëÀïÃæ×öÁËÌØÊâÅжϣ¬·ñÔòÈÔÈ»ÕýÔÚÖ´ÐС£
×¢Òâµã£º
1¡¢¿Í»§¶ËÏÔÊ¾Ò³ÃæµÄʱºò£¬ºǫ́ÒѾִÐÐÍêÁ˵ÄÒ³Ãæ¶ÔÏóÔçÒѾ²»´æÔÚÁË¡£µ±È»Õâʱºò̸²»ÉÏ·þÎñÆ÷¶ÎÖ´Ðв»Ö´ÐеÄÎÊÌâÁË¡£
2¡¢ ......
ÔÚÕâÀïÎÒÃǽ«½²ÊöASP.NET Routing¶ÔÇëÇóµÄ²»Í¬´¦Àí¡£ÎÄÕ½«´Ó´¦Àí»úÖÆ·½Ã濪ʼ½²Æð£¬È»ºó½²Êö¼àÌýµÄ¹ý³Ì¡£Ï£Íû±¾ÎÄÄܶԴó¼ÒÓÐËù°ïÖú¡£
ASP.NET RoutingÊÇÒ»¸öͨÓõÄ×é¼þ£¬Ëü²»Éæ¼°µ½ÈκξßÌåµÄÇëÇó´¦Àí·½Ê½¡£Èç¹ûÄúÐèÒª£¬Ò²¿ÉÒÔ×Ô¼º»ùÓÚËü½øÐпª·¢——ÈçFubuMvcÏîÄ¿¾ÍÊÇÕâô×öµÄ¡£
Ê×ÏÈ£¬Èç¹ûÄúÐèÒªÔÚÏîÄ ......
ÔÚ×Ô¼º×öµÄÍøÒ³Àï ǶÈëÒ»¸öÍøÒ³ È»ºó×Ô¶¯Ìî³ä±íµ¥Êý¾Ý
ÇëÎÊËÖªµÀÔõô¸ã°¡?
ÎÒÓÃIframe ²»ÐÐ
¾Í¸ú winform ÀïÃæµÄwebBrowser ¿ØÖÆÍøÒ³Ä£Ê½ÏàËÆµÄ
¼±°¡·
¾Í±ÈÈç˵ÔÚÍøÒ³ÀïǶÈëÄ³ÍøÕ¾µÄµÇ½½çÃæ È»ºó°Ñ´ÓÊý¾Ý¿âÀï»ñÈ¡µÄÓû§Ãû ºÍ ÃÜÂë ×Ô¶¯ÌîÉÏÈ¥ È»ºóÌá½»
˵Ã÷ Ìá½»µ½ÍâÕ¾
......