链接按钮中的重复href

时间:2013-06-10 07:57:42

标签: c# html asp.net

我在LinkButton内使用了repeater,我在后面的代码中设置了href属性,但在浏览器中查看页面来源时,有两个href如下图所示。

<li id="HeaderMenu_repeaterLevel1Menu_mainMenuLi_0" >
    <a id="HeaderMenu_repeaterLevel1Menu_linkButtonMenu_0"
       href="/Home" href="javascript:__doPostBack(&#39;ctl00$HeaderMenu$repeaterLevel1Menu$ctl00$linkButtonMenu&#39;,&#39;&#39;)">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...

感谢您的帮助 感谢。

2 个答案:

答案 0 :(得分:2)

使用HyperLink代替LinkButton

来自MSDN:

  

使用LinkBut​​ton控件在。上创建超链接样式按钮   网页。 LinkBut​​ton控件具有与a相同的外观   HyperLink控件,但具有与Button控件相同的功能。   如果要在单击控件时链接到另一个Web页面,   考虑使用HyperLink控件。

链接按钮用于回发到页面,而不是重定向到其他页面。

答案 1 :(得分:1)

当你自己设置href并使用命令名ASP.Net句柄时会出现矛盾(就像你无法决定谁负责一样)。

所以你不应该自己设置“href”,你应该设置PostBackUrl属性。
如果它更适合您的需要,请使用HyperLink。