我在LinkButton
内使用了repeater
,我在后面的代码中设置了href
属性,但在浏览器中查看页面来源时,有两个href
如下图所示。
<li id="HeaderMenu_repeaterLevel1Menu_mainMenuLi_0" >
<a id="HeaderMenu_repeaterLevel1Menu_linkButtonMenu_0"
href="/Home" href="javascript:__doPostBack('ctl00$HeaderMenu$repeaterLevel1Menu$ctl00$linkButtonMenu','')">Home</a>
</li>
下面是我的代码
<asp:LinkButton ID="linkButtonMenu" runat="server"
CommandName="<%# ((BusinessObjects.Pages.Menu)Container.DataItem).ID %>"
href="<%# ((BusinessObjects.Pages.Menu)Container.DataItem).URL %>">
</asp:LinkButton>
我在检查w3c错误时发现了这个问题。如何删除href="javascript:__doPostBack...
感谢您的帮助 感谢。
答案 0 :(得分:2)
使用HyperLink
代替LinkButton
。
来自MSDN:
使用LinkButton控件在。上创建超链接样式按钮 网页。 LinkButton控件具有与a相同的外观 HyperLink控件,但具有与Button控件相同的功能。 如果要在单击控件时链接到另一个Web页面, 考虑使用HyperLink控件。
链接按钮用于回发到页面,而不是重定向到其他页面。
答案 1 :(得分:1)
当你自己设置href并使用命令名ASP.Net句柄时会出现矛盾(就像你无法决定谁负责一样)。
所以你不应该自己设置“href”,你应该设置PostBackUrl属性。
如果它更适合您的需要,请使用HyperLink。