我没有设法避免使用response.redirect 函数进行编码。 Server.UrlEncode() 也没有这样做,因为它只是添加了另一种不需要的编码,而我希望 TextBox/Label 的确切内容是传递给浏览器 URL 栏的字符串,然后按回车键 - 这应该通过代码完成。
我终于按照@Richard Housham 的建议使用 Javascript 实现了这一点:
标记:
<asp:TextBox id="TB_ExternalLink" runat="server"/>
<asp:LINKButton ID="LB_Open" runat="server" OnClick="OpenLink">Open Link</asp:LINKButton>
<input type="hidden" runat="server" id="hiddenExternalFile"/>
代码:
protected void OpenLink(object sender, EventArgs e)
{
string url = TB_ExternalLink.Text.Replace(@"\\", @"\\");
hiddenExternalFile.Value = url;
Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "windowOpen()", true);
}
Javascript:
function windowOpen() {
Window = window.open(document.getElementById('hiddenExternalFile').value, "_blank");
}
在新选项卡中打开以这些格式输入到文本框中的任何链接:
http://www.url.com
\\corp.root.int\INT-Host$\USR03\XXX\W10\Desktop\Kaizen MRO\RMA_Part.png
N:\ESSBP1-Office\Imagenes\Check list.xlsx
不考虑空格或特殊 ASCI 字符