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将该链接视为子文件夹,而不是另一个网站的实际路径),对此有什么解决方案?
确保链接以http://或https://开头,否则浏览器会认为链接是相对的。
正如Brain已经提到的,请确保您的链接以http://
或https://
开头。因此,在href标记属性中附加http://
或https://
,并在<a>
标记中添加target="_blank"
属性。
希望它能帮助你。