.NET中ASP HyperLink拼接链接变量后缀未生效问题
问题根因
代码存在两处错误,导致ProgramID拼接逻辑未生效:
- 前端
asp:HyperLink控件标签语法错误:开始标签未正确闭合,Text="Link to Wiki page"属性后缺少>,会导致控件解析异常,后台赋值无法正确映射到控件属性。 - 后台属性名拼写错误:HyperLink控件的跳转地址原生属性为
NavigateUrl,你的代码中将其错写为NavagateUrl(漏写了navigate拼写中的字母i),相当于给控件实例新增了一个不存在的自定义属性,并未真正修改控件的跳转地址配置,因此拼接的ProgramID不会被渲染到最终的a标签href属性上。你看到的基础地址跳转,是控件本身预设的默认NavigateUrl值生效的结果。
修复步骤
- 修正前端控件标签语法,补全开始标签的闭合符
- 修正后台属性名的拼写错误,使用正确的
NavigateUrl属性赋值
修复后代码
前端页面控件代码:
<asp:HyperLink ID="wikiLink" runat="server" Text="Link to Wiki page"></asp:HyperLink>
后台Page_Load逻辑代码:
protected void Page_Load(object sender, EventArgs e) { var ProgramID = 5; wikiLink.NavigateUrl = "https://www.Example.com/" + ProgramID; }
开发建议:开启Visual Studio的编译时类型检查,拼写不存在的控件属性时IDE会直接标红提示,可快速规避这类低级拼写错误。
内容的提问来源于stack exchange,提问作者michael murillo
相关产品推荐
相关产品推荐

