ASP.NET ImageButton链接断开网站

时间:2016-06-23 22:24:25

标签: c# asp.net linkbutton asplinkbutton

我有一个asp.net图像按钮,它基本上根据用户选择显示产品图像,并相应地设置指向外部网站的链接。当我点击IE中的图像按钮时,它会崩溃该网站,但它似乎在Chrome中正常工作。举个例子:

if (TotalWattage > 1 && TotalWattage < 275) //depending on wattage calculation, shows PSU recommendation
    {
        imgbtnPSURecommend.ImageUrl = "~/Images/PSU Tool Images/CM-300.jpg";
        lblPSURecommend.Text = "300w COOLMAX CM-300";
        imgbtnPSURecommend.PostBackUrl = "http://www.newegg.com";
    }

如果我启动该站点并单击该图像,它将崩溃回Visual Studio并在第32行第17栏中说出#34; JavaScript严重错误。&#34;错误只是说:

function onclick(event)
{
javascript:void()
}

如果我将网址更改为www.google.com,Google会加载&#34;您的客户端发出了太大的请求。这就是我们所知道的。&#34;有谁知道为什么会发生这种情况?如果我创建一个常规的L​​inkBut​​ton控件并将OnClick事件设置为Response.Redirect(&#34; http://www.newegg.com&#34;)它就可以正常工作。

3 个答案:

答案 0 :(得分:0)

最好不要使用 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { if textField == txtSitReach { if txtSitReach.text != nil { doneSitReachButton.enabled = true } else { doneSitReachButton.enabled = false } } else { print("whatever") } ,而是使用内置图片的PostBackUrlImageButton

答案 1 :(得分:0)

您发布的代码 向Newegg发送链接。相反,您是 跨网站脚本 到Newegg。

换句话说,您正在执行 HttpPost 而不是 HttpGet 。我不认为Newegg会让你去他们的网站。

如果您只想要链接到其他网站,可以直接使用HyperLink。

<asp:HyperLink runat="server" ID="MyHyperLink" ></asp:HyperLink>

if (TotalWattage > 1 && TotalWattage < 275)
{
    MyHyperLink.ImageUrl = "~/Images/PSU Tool Images/CM-300.jpg";
    MyHyperLink.Text = "300w COOLMAX CM-300";
    MyHyperLink.NavigateUrl = "http://www.newegg.com";
}

答案 2 :(得分:0)

到目前为止,所有答案都要求您更改标记代码以添加新项目或更改您正在使用的项目类型,在某些实现中可能存在缺点。如果您知道用户已启用Javascript,则可以使用“window.location.href”将用户重定向到目标页面:

if (TotalWattage > 1 && TotalWattage < 275) //depending on wattage calculation, shows PSU recommendation
    {
        imgbtnPSURecommend.ImageUrl = "~/Images/PSU Tool Images/CM-300.jpg";
        lblPSURecommend.Text = "300w COOLMAX CM-300";
        imgbtnPSURecommend.OnClientClick = "window.location.href = 'http://www.newegg.com'; return false;"
    }