使用runat = server的图像无法看到代码隐藏属性

时间:2010-01-29 22:13:33

标签: asp.net

我的.aspx中有以下内容:

<input type="image" src="<%=PayPalButtonImage %>" onserverclick="RedirectToPayPal" runat="server" />

在代码隐藏中我得到了这个属性:

protected string PayPalButtonImage
{
    get { return PayPalExpressCheckoutButtonUrl;}
}

protected void RedirectToPayPal()
{

}

为什么不能看到这个属性或服务器方法RedirectToPayPal?我得到一个运行时错误:

'ASP.cart_aspx'不包含'RedirectToPayPal'的定义,并且没有可以找到接受“ASP.cart_aspx”类型的第一个参数的扩展方法'RedirectToPayPal'

6 个答案:

答案 0 :(得分:2)

这可能无法解决您的问题,但我认为您的方法签名不正确。尝试将RedirectToPayPal方法更改为

protected void RedirectToPayPal(object sender, ImageClickEventArgs e)
{

}

答案 1 :(得分:2)

protected void RedirectToPayPal(object sender, EventArgs e)
{

}

非常确定您需要与asp.net页面相关的事件缺少参数。

答案 2 :(得分:0)

我不认为这是你真正的问题。确保已构建解决方案,并且ASPX指向您编辑的代码隐藏文件。

答案 3 :(得分:0)

重要的不是代码隐藏,它是Inherits属性。让我们看看你的类定义和@Page指令。如果这些不匹配,则无法找到该方法。

答案 4 :(得分:0)

我认为您收到运行时错误的原因是因为您尚未为此定义事件。请尝试以下方法:

CS:

public event EventHandler RedirectEvent; 

protected void Page_Load(object sender, EventArgs e)
{
        this.RedirectEvent += new EventHandler(RedirectToPayPal);
}

protected string PayPalButtonImage
{
   get { return "hello"; }
}

protected void RedirectToPayPal(object sender, EventArgs e)
{
   //DO Whatever here. 
}

<强> ASPX: <input id="Image1" type="image" src="<%=PayPalButtonImage %>" runat="server" onserverclick="RedirectToPayPal" />

答案 5 :(得分:0)

对于那些寻求帮助的人来说,你在发布代码时非常顽固......

这是一个想法。使用ASP控件来设计它们并停止尝试游戏系统:

<asp:ImageButton ID="imgButton" runat="server" OnClick="RedirectToPaypal" />

您的原始控件没有ID属性,这是在后端触发事件所必需的。