c# ASP.NET Webforms:使用动态 href 动态创建锚元素
c# ASP.NET Webforms: Dynamically creating anchor elements with dynamic hrefs
我正在使用 VS 2019
、C# 4.8
和 ASP.NET WebForms
。我有一个用作列表的页面。每行都有一个公司名称,当用户点击它时,我想在另一个页面顶部并将该公司的 ID 作为参数传递。或者有没有更好的 SEO 友好的方法?
下面是我遇到问题的代码截图:
- 如您所见,我试图将公司 ID 作为参数 (url) 传递到 url,但失败了,如下一个屏幕截图所示:
- 如果我将行号和公司名称放在锚标记的文本区域中,它将无法编译,如下所示:
正确的做法是什么?
除非你在数据绑定控件中,否则你不能使用
'<% Public 表格方法在这里 %>'
以上方法无效。您可以在不基于服务器的标记和控件中使用上述表达式(因此,您可以删除 runat="Server".)。那么有服务器控件吗?
那些<% %>表达式不能用!
当然如果我们在里面说任何数据绑定控件?那么当然,您可以使用“#”符号,表示“在”数据绑定期间。
所以,如果这是在 listview/gridview/details 视图等方面说的?那项是数据绑定的?
那么您可以在标记中使用这种格式:
'<%# Eval("column name from data source") %>'
'<%# Eval("HotelName") %>'
'<%# Eval("itm.Co_ID") %>'
但以上假定这些控件在数据库控件中(gridview/listview 等)。
因此,假设 itm.Co_ID 是该 Web 表单的 PUBLIC 成员是合法的。
<h2>'<%= itm.Co_ID %>'</h2>
在上面,itm.Co_ID 必须是给定网页的 public method/function。
但是,如果您尝试这样做,那么它将不起作用:
<h2 id="mybigtitle" runat="server" >'<%= itm.Co_ID %>'</h2>
因此此类表达式仅适用于非服务器控件(没有 runat="server')。
但是,我们可以在代码中对“mybigtitle”执行数据绑定,因此我们可以使用:
<h2 id="mybigtitle" runat="server" >'<%# Eval("itm.Co_ID") %>'</h2>
但是,在后面的代码中我们需要一个
mybigitle.dataBind()
并且 item.Co_ID 必须是一个可解析的变量,class 或 public 网页的方法或函数才能起作用。
但是,您可能已经在创建和吐出数据的列表视图或某些数据绑定控件中 - 没有该标记或不知道您发布的标记属于哪种对象 - 那么它不清楚如果您可以使用“#”作为数据绑定表达式,例如
'<%# Eval("legal function etc. goes here") %>'
在不知道您的标记是否是数据绑定(可用)控件的结果的情况下,我们必须在这里猜测一下什么会起作用。
我正在使用 VS 2019
、C# 4.8
和 ASP.NET WebForms
。我有一个用作列表的页面。每行都有一个公司名称,当用户点击它时,我想在另一个页面顶部并将该公司的 ID 作为参数传递。或者有没有更好的 SEO 友好的方法?
下面是我遇到问题的代码截图:
- 如您所见,我试图将公司 ID 作为参数 (url) 传递到 url,但失败了,如下一个屏幕截图所示:
- 如果我将行号和公司名称放在锚标记的文本区域中,它将无法编译,如下所示:
正确的做法是什么?
除非你在数据绑定控件中,否则你不能使用
'<% Public 表格方法在这里 %>'
以上方法无效。您可以在不基于服务器的标记和控件中使用上述表达式(因此,您可以删除 runat="Server".)。那么有服务器控件吗?
那些<% %>表达式不能用!
当然如果我们在里面说任何数据绑定控件?那么当然,您可以使用“#”符号,表示“在”数据绑定期间。
所以,如果这是在 listview/gridview/details 视图等方面说的?那项是数据绑定的?
那么您可以在标记中使用这种格式:
'<%# Eval("column name from data source") %>'
'<%# Eval("HotelName") %>'
'<%# Eval("itm.Co_ID") %>'
但以上假定这些控件在数据库控件中(gridview/listview 等)。
因此,假设 itm.Co_ID 是该 Web 表单的 PUBLIC 成员是合法的。
<h2>'<%= itm.Co_ID %>'</h2>
在上面,itm.Co_ID 必须是给定网页的 public method/function。
但是,如果您尝试这样做,那么它将不起作用:
<h2 id="mybigtitle" runat="server" >'<%= itm.Co_ID %>'</h2>
因此此类表达式仅适用于非服务器控件(没有 runat="server')。
但是,我们可以在代码中对“mybigtitle”执行数据绑定,因此我们可以使用:
<h2 id="mybigtitle" runat="server" >'<%# Eval("itm.Co_ID") %>'</h2>
但是,在后面的代码中我们需要一个
mybigitle.dataBind()
并且 item.Co_ID 必须是一个可解析的变量,class 或 public 网页的方法或函数才能起作用。
但是,您可能已经在创建和吐出数据的列表视图或某些数据绑定控件中 - 没有该标记或不知道您发布的标记属于哪种对象 - 那么它不清楚如果您可以使用“#”作为数据绑定表达式,例如
'<%# Eval("legal function etc. goes here") %>'
在不知道您的标记是否是数据绑定(可用)控件的结果的情况下,我们必须在这里猜测一下什么会起作用。