gpt4 book ai didi

asp.net - 在 ASP.NET 属性中组合字符串

转载 作者:行者123 更新时间:2023-12-01 04:06:26 24 4
gpt4 key购买 nike

我正在尝试在属性内连接一个字符串。我得到一个错误。我认为这与我的Eval有关.是否有连接字符串的正确方法,或者这只是不可能的。我相信的问题是我在哪里设置了 NavigateUrl。

<asp:HyperLink ID="lb" 
runat="server"
Text='<%#Eval("Key.Id") %>'
NavigateUrl='ViewItem.aspx?id=' + '<%# Eval("Key.Id") %>'/>

最佳答案

简短回答:NavigateUrl='<%# Eval("Key.Id", "ViewItem.aspx?id={0}") %>'
更长的解释:

您的代码中的问题是您仅对部分 Web 控件属性使用数据绑定(bind)表达式。您需要移动数据绑定(bind)表达式中的所有内容。

首先,数据绑定(bind)表达式是这样的:

<%# EXPRESSION %>

基本上,为 Web 控件属性使用数据绑定(bind)表达式的规则是表达式必须是属性中的唯一内容:
<asp:HyperLink ID="lb" runat="server" 
Text='<%# EXPRESSION %>'
NavigateUrl='<%# EXPRESSION %>' />

所以你的第一个属性, Text , 是正确的。但是您的第二个属性 NavigateUrl是不正确的。因为你放了 ViewItem.aspx?id=作为属性的值,留下 + '<%# Eval("Key.Id") %>'在任何属性之外但在控制标签内。

这是正确的语法:
<asp:HyperLink ID="lb" runat="server" 
Text='<%# Eval("Key.Id") %>'
NavigateUrl='<%# Eval("Key.Id", "ViewItem.aspx?id={0}") %>'/>

请注意,我们使用格式字符串作为 Eval() 的第二个参数。 .这等效于以下更明确的语法:
<asp:HyperLink ID="lb" runat="server" 
Text='<%# Eval("Key.Id") %>'
NavigateUrl='<%# String.Format("ViewItem.aspx?id={0}", Eval("Key.Id")) %>'/>

关于asp.net - 在 ASP.NET 属性中组合字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com