aspnet使用母版页时,js出现的问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
aspnet使用母版页时,js出现的问题
今天在开发系统时,用到母版中引用js文件,
先后试了几个方法,比如:使用link 引用js,代替原来的直接的script引用。
但是不行。
<script language="javascript" src="~/CustomControls/Alert/Alert.js"
type="text/javascript" ></script>
对“~”不进行解释,
网上搜索了一下有2中解决方案:
1、把masterpage中的所有相对路径用ResolveUrl()这个方法处理一下就行了,前台或或后台代码中都可以,比如前台中:
<a href='<%=ResolveUrl("default.aspx")%>'>首页</a>
2、在母版页面后台代码:
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);
}
引用中增加:
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
ok!!!!!!呵呵。