模版页中难免要引用CSS、脚本、图片等
①这些文件的路径如果简单的使用相对路径,那么如果引用模版的目录一发生变化,这些路径就会出错;
②asp.net支持一种相对于应用程序的路径,以波浪线开头的,形如"~/",使用它即可解决,例如:
<link rel="stylesheet" media="screen" type="text/css" href="<%=ResolveClientUrl("~/css/global.css") %>" />
③当然如果你觉得每个路径都要写成动态的不爽,而又正好有页面基类的话,倒是可以换一种方式:
所有的路径直接书写为相对于应用程序目录的路径,形如:
<link rel="stylesheet" media="screen" type="text/css" href="~/css/global.css" />
当然默认HTML是不支持的这样的路径方式的,这时候就要借助PageBase了(BasePage要继承System.Web.UI.Page,各个子页面则需要继承BasePage就可以使用里面的变量和方法了)
代码如下(好像是从DNN的代码里面抠出来的)
public abstract class PageBase : Page
{
protected override void Render(HtmlTextWriter writer)
{
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
string html = stringWriter.ToString();
#region 转换相对路径
MatchCollection collection = Regex.Matches(html, "<(a|link|img|script|input|form).[^>]*(href|src|action)=(\\\"|'|)(.[^\\\"']*)(\\\"|'|)[^>]*>", RegexOptions.IgnoreCase);
foreach (Match match in collection)
{
if (match.Groups[match.Groups.Count - 2].Value.IndexOf("~") != -1)
{
string url = this.Page.ResolveUrl(match.Groups[match.Groups.Count - 2].Value);
html = html.Replace(match.Groups[match.Groups.Count - 2].Value, url);
}
}
#endregion
writer.Write(html);
}
}
分享到:
相关推荐
ASP.NET 4高级程序设计(第4版)》【原版书为:Pro ASP.NET 4 in C# 2010】是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的...
《ASP.NET 4高级程序设计(第4版)》是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。书中还深入讲述了其他ASP.NET图书...
9-01.aspx 引用母版页。 MasterPage1.master 创建一个母版页。 9-01.aspx 调用母版页并进行交互。 FMasterPage.master 进行嵌套的父母版页。 SMasterPage.master 引用父母版页的子母版页。 9-03....
2、在page页面通过设置页面指令@MasterType创建对该母版页的强类型引用,指定生成强类型的文件的虚拟路径例如: 代码如下:<%@ MasterType VirtualPath=”~/Demo.Master” %>3、在母版页添加一个public的属性...
ASP.net 网页模板与站点地图 ...SiteMapPath 是 ASP.net 中的一种站点地图路径控件,用于显示网站的当前位置和导航路径。Menu 和 TreeView 是 ASP.net 中的两种常用的导航控件,用于显示网站的菜单和树形结构。
用户功能:用户注册,用户登录,用户改密,个人中心,用户注销; 视频功能:支持视频资源浏览与播放,模糊... 后台管理员功能:用户及视频的增删改查。 视图界面采用css样式,图片参与排版,包含两个母版,十余个页面
9-01.aspx 引用母版页。 MasterPage1.master 创建一个母版页。 9-01.aspx 调用母版页并进行交互。 FMasterPage.master 进行嵌套的父母版页。 SMasterPage.master 引用父母版页的子母版页。 9-03.aspx 引用子母...
陷阱24 母版页中使用img标签 陷阱25 页面缓存产生的陷阱 陷阱26 使用查询字符串在页面间传递参数 陷阱27 通用数据类型运算产生的陷阱 陷阱28 在模态窗口中下载文件 陷阱29 构造方法中调用虚方法的陷阱 陷阱30 使用值...
在不同路径下的网页套用同一个母版页之后,为什么有的网页能正常显示图片,有的网页不能正常显示图片或者背景图片呢?解决办法:通过主题来设置背景图片,可以解决在不同路径下的网页的图片问题!
1,CSS文件路径不正确这个问题属于Web开发中的基础问题,一般采用相对路径会出现这样的问题,或者样式文件写在了母版页里面,在内容页与母版页不在同一级目录下时会出现这样的问题。此时你要清楚Web中相对路径的规则...
11.1 创建站点地图文件 180 11.2 制作导航条 182 11.3 实现导航路径 182 ...11.5 在母版页中添加导航 185 11.6 常见问题 186 11.6.1 创建站点地图文件有没有专门的工具 186 11.6.2 SiteMapDataSource控件起什么作用 186
3) 修正插入图片功能中引用外部网络地址会出现插入地址错误的BUG。 4) 修正控件在Opera浏览器使用中出现的一些BUG。 5) 修正了控件右键菜单判断选择状态不正确的BUG。 6) 优化了非IE浏览器下的脚本性能...