ASP.NET Web Form:HTML元素能否调用后台自定义函数?代码失效求助
ASP.NET Web Form中HTML元素调用后台函数的问题排查
ASP.NET Web Form支持给带有runat="server"的HTML元素绑定后台事件,但你的代码存在几个问题导致无法运行,具体修正如下:
- 事件名称错误:HTML
<a>标签的服务器端点击事件是OnServerClick,而非OnClick——OnClick是客户端JavaScript事件,不会触发后台代码。 - 大小写问题:C#是大小写敏感语言,
response.redirect需改为Response.Redirect(Response是ASP.NET内置对象,首字母必须大写)。 - 控件属性访问优化:通过
sender对象获取控件属性更可靠,避免直接依赖控件ID可能出现的绑定问题。
修正后的代码
ASPX文件:
<a id="link" CustomAttributes="Custom Value" OnServerClick="link_click" runat="server">link</a>
ASPX.CS后台代码:
protected void link_click(object sender, EventArgs e) { HtmlAnchor anchor = sender as HtmlAnchor; if (anchor != null) { string customValue = anchor.Attributes["CustomAttributes"]; Response.Redirect($"blabla.aspx?id={customValue}"); } }
补充说明:带有runat="server"的HTML元素会被ASP.NET解析为对应的服务器控件(比如<a>对应HtmlAnchor类),只有绑定其专属的服务器端事件,才能触发后台的自定义函数。
内容的提问来源于stack exchange,提问作者Mattia Quaglietta
相关产品推荐
相关产品推荐

