微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

明确将链接视为绝对链接?

如何解决明确将链接视为绝对链接?

| 我在一个页面上有一个控件,该控件接受一些用户输入(URL),并允许用户测试链接
<asp:HyperLink ID=\"HyperLink1\" runat=\"server\" NavigateUrl=\'<%# Eval(\"URL\") %>\' Target=\"_blank\">Click here to test link</asp:HyperLink>
问题是,如果用户输入URL \“ google.com \”,则该链接将被视为\“ http://localhost/google.com \”。我必须将\“ http://www.google.com \”放到正确的位置。 是否有可能在所有情况下都将链接视为绝对链接?     

解决方法

        尝试这个...
NavigateUrl=\'<%# Eval(\"URL\",\"http://{0}\") %>\'
编辑:如果要添加,请检查它是否已经包含
http://
,然后应该像。
NavigateUrl=<%# Eval(\"URL\").ToString().Contains(\"http://\") == true ? Eval(\"URL\") :
 \"http://\" + Eval(\"URL\")  %>
    ,        这是学术性质的问题还是您有待解决的问题? 首先,http://www.google.com是正确的地方,而http://localhost/google.com是不正确的概念是非常错误的。 我所看到的是您的问题。 从数据源中提取URL时,ASP.NET Framework会将原始URL识别为相对URL。但是您希望他们使用其绝对uri。 但是问题不在于框架,因为http://localhost/google.com可能是有效的URL。 建站网站就是一个很好的例子。它具有有效的网址,例如http://builtwith.com/facebook.com 因此,问题出在您输入数据的地方。为什么不能放置一个小的组合,以便用户可以轻松添加协议,然后将URL附加到它,如下所示? 希望这可以帮助。     ,        根据您的评论:   如果它是安全(https)站点或FTP站点怎么办? 和   那行得通吗?如果输入中已经有“ 4”怎么办?如果它是安全(https)站点或FTP站点怎么办? 和   问题是,如果用户输入URL \“ google.com \”,则该链接将被视为\“ http://localhost/google.com \”。我必须将\“ http://www.google.com \”放到正确的位置。      是否有可能在所有情况下都将链接视为绝对链接? 您在寻求魔术。我们不在这里专门研究魔术。您必须指定一些内容,使您知道它可以成为特定类型的域。告诉他们如果他们没有指定协议,您将使用http://,其余时间由他们来指定协议。这就是您所能做的。 至于确定是否有协议,请检查
string.Contains(\"://\")
,因为这或多或少是浏览器要执行的操作。     ,        在后面的代码中,检查用户输入是否包含\“ http:// \”,如果不包含,则将其附加。您也可以使用JavaScript来执行此操作。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。