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); } } } (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net使用H5新特性实现异步上传的示例
- asp.net-mvc – 为什么MVC4捆绑捆绑Knockout.js?
- asp.net – 错误:数据绑定方法(如Eval(),XPath()和Bind()只
- asp.net-mvc-4 – MVC 4 Razor如果拆分div标签
- asp.net – 无法返回JsonResult
- asp.net – Azure可以运行WPF吗?
- 在使用ASP.NET会话时是否可以强制请求并发?
- asp.net-mvc – 使用与本地化更改冲突的自定义数据注释进行
- asp.net – 增加IIS7 / Win7 Pro上的最大上传文件大小
- asp.net-mvc – 如何将XML作为POST传递给ASP MVC .NET中的A
- asp.net-mvc – MVC DB首先修复显示名称
- ASP.NET C#ListBox服务器控件不会禁用
- ASP.NET MVC 4 JSON绑定到视图模型 – 嵌套对象错
- asp.net-mvc – 使用html.actionlink将模型从视图
- ASP.NET MVC 4和Razor 2:View引擎不再支持xml?
- asp.net-mvc – ASP.NET MVC 3 Beta 1 Block访问
- asp.net – 是否有可能过滤SignalR中的接收器?
- asp.net – 无法在UpdatePanel中下载文件
- 什么是使用aspnet_compiler.exe预编译ASP.NET项目
- asp.net-mvc – Asp .Net Core – 无法安装Micro