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
相关文档:
您可以使用 Substitution 控件,在网页上创建可动态更新并可随后集成到缓存页中的区域。
一、方案
使用 Substitution 控件可以在要缓存输出的网页上指定要显示动态内容的部分。对于多数内容都要进行缓存的页,Substitution 控件提供了进行部分页缓存的简化的解决方案。您可以缓存整个页的输出,然后使用 Subst ......
首先看下XML结构
<?xml version="1.0" encoding="utf-8"?>
<corplist>
<corp>
<linkname>陈先生</linkname>
<corpname>XXXXXXXXX公司</corpname>
<email>xxxxx@126.com</email>
</corp>
<corp>
<linknam ......
Table Web 服务器控件使您能够在 ASP.NET 页上创建可使用服务器代码进行编程的表。TableRow 和 TableCell Web 服务器控件提供显示 Table 控件的内容的方法。
一、背景
通常,表不仅用来显示表格信息,它还是在网页上格式化信息的一种方法。可以通过多种方法在 ASP.NET 页上创建表:
& ......
1. ASP.Net是什么?
ASP.Net是建立在微软新一代.Net平台架构上,利用普通语言运行时(Common Language Runtime)在
服务器后端为用户提供建立强大的企业级Web应用服务的编程框架。
2.ASP.Net与ASP的联系和主要区别是什么?
&n ......