c#中的重定向问题

本文关键字:问题 重定向 | 更新日期: 2023-09-27 18:20:00

我在以下场景中遇到问题

我正在开发一个聊天应用程序,希望用户可以发送一个链接到像这样的特定页面

Hey check out my link www.link1.com我正在做的是使用reg表达式来检测链接并将其替换为<a href >这是我正在使用的代码:

 public string ReplaceMsgHyperLinkIfExist(string msg)
    { 
        Regex r= new Regex(@"((?:(?:https?|ftp|gopher|telnet|file|notes|ms-help):(?://|'''')(?:www'.)?|www'.)['w'd:#@%/;$()~_?'+,'-=''.&]+)");
        Match m = r.Match(msg);
        while (m.Success)
        {
          string val="<a href='"+m.Value+"' title='"+m.Value+"' >"+m.Value+"</a>";
          msg= msg.Replace(m.Value,val);
          m = m.NextMatch();
        }
        return msg;
    }

问题是,当消息被发送并被用户点击时,它没有正确重定向,例如,如果用户在c#中发送此消息hi www.google.com,当接收者点击它时,它会重定向到localhost:2525/www.google.com(asp.net将该链接视为子文件夹,而不是另一个网站的实际路径),对此有什么解决方案?

c#中的重定向问题

确保链接以http://或https://开头,否则浏览器会认为链接是相对的。

正如Brain已经提到的,请确保您的链接以http://https://开头。因此,在href标记属性中附加http://https://,并在<a>标记中添加target="_blank"属性。

希望它能帮助你。