我有一个表单,让人们可以在我的网站上输入各种链接,如:http,https和ftp。当有人输入“http:stackoverflow.com”,“https:stackoverflow.com”和“ftp:stackoverflow.com”并在这样的视图中呈现这些:
<ul>
@foreach (var link in Model.Keyword.References)
{
<li>
<a href="@link.Link" target="_blank">@link.Link</a>
</li>
}
</ul>
我得到以下输出:
这看起来不错,但当我悬停“http:stackoverflow.com”时,真正的链接是:“localhost:1973 / stackoverflow.com”。
当我将https和ftp链接悬停时,我得到了正确的输出:
当我通过表单提交时,我发现http链接需要两个“正斜杠”。所以不是“http:”而是“http://”。我想知道为什么https和ftp链接不需要这些额外的斜杠。我也想知道一个很好的解决方案,因为我不认为我应该强迫用户使用这些额外的斜杠。
答案 0 :(得分:0)
始终需要URL中的斜杠。可能是您的浏览器对无效的网址进行了一些更正。尝试将https:stackoverflow.com放在浏览器的地址栏中,它会尝试在大多数浏览器中更正它。
答案 1 :(得分:0)
至于一个好的解决方案,我认为你应该只接受没有http://的域名。您可以在显示&#34;示例:&#39; www.somedomain.com&#39;&#34;的输入下面放置一些小文本,以便用户知道不需要前面的协议。
然后,您可以使用JQUERY / REGEX来验证和修剪某人可能错误添加的任何协议内容。