asp.net – 我可以在超链接上显式指定NavigateUrl吗?
|
Asp.Net非常聪明,并尝试解析超链接的NavigateUrl相对于它位于或相对于应用程序根目录的控件,如果您在开始时放置/. 但是我有一个情况,我想明确地将URL设置为相对路径,我不希望它“帮助”我. 超链接的导航url和HtmlAnchor的href属性都表现出这种行为. 例如 但如果我写下列内容 <asp:Hyperlink runat="server" NavigateUrl="donkey.gif" /> 那么渲染的href将是’foo / bar / donkey.gif’. 由于复杂的原因,我宁愿不进入这里,使用“/ donkey.gif”也不是一个选择. 解决方法你不能简单地使用HTML锚(没有runat =“server”属性)?例如:<a href="relative.htm">link text</a> 更新:如果您不想失去HyperLink控件的功能,您可以创建一个从HyperLink派生的控件,并覆盖AddAttributesToRender()方法(这是NavigateUrl已解决的地方). HyperLink.AddAttributesToRender()如下所示: protected override void AddAttributesToRender(HtmlTextWriter writer)
{
...
string navigateUrl = this.NavigateUrl;
if (navigateUrl.Length > 0 && base.IsEnabled)
{
string str = base.ResolveClientUrl(navigateUrl);
writer.AddAttribute(HtmlTextWriterAttribute.Href,str);
}
...
}
自定义HyperLink控件: public class MyHyperLink : HyperLink
{
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
if ((base.Enabled && !base.IsEnabled) && base.SupportsDisabledAttribute)
{
writer.AddAttribute(HtmlTextWriterAttribute.Disabled,"disabled");
}
base.AddAttributesToRender(writer);
if (this.NavigateUrl.Length > 0 && base.IsEnabled)
{
writer.AddAttribute(HtmlTextWriterAttribute.Href,this.NavigateUrl);
}
if (this.Target.Length > 0)
{
writer.AddAttribute(HtmlTextWriterAttribute.Target,this.Target);
}
}
} (编辑:南阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 增加IIS7 / Win7 Pro上的最大上传文件大小
- asp.net-core – 如何在Visual Studio 2015 RC中为ASP.NET
- ASP.NET通过分布式Session提升性能
- Asp.Net MVC路由表和控制器操作
- ASP.NET Core 2.0中Razor页面禁用防伪令牌验证
- asp.net-mvc – ASP.net 5 MVC 6 bower.json和project.json
- asp.net-mvc – 如何组合两个dataTextFields的SelectList描
- 如何在ASP.NET MVC应用程序中本地化Controller名称和操作?
- asp.net-mvc – 在一个页面中以两种不同的形式使用多个@ Ht
- asp.net+js 实现无刷新上传解析csv文件的代码
- asp.net – 如何使用Inno Setup脚本创建IIS应用程
- asp.net-web-api – 首先使用ASP.NET Web API的E
- asp.net – Tridion分析和个性化错误:用户不能为
- asp.net-mvc – 使用AWS .NET SDK进行SNS订阅确认
- asp.net-mvc – 在MVC命令,优先级和功能问题中授
- ASP.NET和System.Diagnostics跟踪 – 我错过了什
- asp.net – 在SQL Server中将日期转换为刻度
- asp.net – 数据注释 – 使用属性扩展并在资源文
- VS 2013 RC中缺少ASP.NET Web窗体脚手架功能
- 在mvc4 asp.net中的Razor View中的模型声明
