如何解决c# ASP.NET Webforms:使用动态 href 动态创建锚元素
我正在使用 /**
* @ORM\ManyToOne(targetEntity="App\Entity\MusicGenre",inversedBy="musicscore")
*/
private $Genre;
public function setGenre(?MusicGenre $Genre): self
{
$this->Genre = $Genre;
return $this;
}
、VS 2019
和 C# 4.8
。我有一个页面作为列表。每一行都有一个公司名称,当用户点击它时,我想在另一个页面的顶部并将该公司的 Id 作为参数传递。或者有没有更好的方法来做到这一点,对 SEO 友好?
下面是我遇到问题的代码截图:
- 如您所见,我正在尝试将公司 ID 作为参数 (itm.Co_Id) 传递到 url 中,但这失败了,如下面的屏幕截图所示:
- 如果我将行号和公司名称放在锚标记的文本区域中,它将不会如下所示进行编译:
这样做的正确方法是什么?
解决方法
除非你在数据绑定控件内,否则你不能使用
''
以上方法无效。您可以在不基于服务器的标记和控件中使用上述表达式(因此,您可以删除 runat="Server".)。那么任何服务器控制?
不能使用那些 表达式!
当然,如果我们在里面说任何数据绑定控件?那么当然,您可以使用“#”符号,表示“在”数据绑定期间。
那么,如果这是在列表视图/网格视图/详细信息视图等中说的?那个项目是数据绑定的?
然后你可以在你的标记中使用这种格式:
'<%# Eval("column name from data source") %>'
'<%# Eval("HotelName") %>'
'<%# Eval("itm.Co_ID") %>'
但上面假设这些控件位于数据库控件(gridview/listview 等)内。
因此,假设 itm.Co_ID 是该网络表单的 PUBLIC 成员是合法的。
<h2>'<%= itm.Co_ID %>'</h2>
在上面,itm.Co_ID 必须是给定网页的公共方法/函数。
然而,如果你尝试这个,那么它就行不通了:
<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 必须是该网页的可解析变量、类或公共方法或函数才能使其正常工作。
但是,您很可能已经在创建和吐出数据的列表视图或某些数据绑定控件中 - 没有该标记或不知道您发布的标记属于哪种类型的对象 - 那么不清楚您是否可以使用“#”作为数据绑定表达式,例如
'<%# Eval("legal function etc. goes here") %>'
在不知道您的标记是否是 databind(able) 控件的结果的情况下,我们必须在这里猜测一下什么会起作用,或者不起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。