0

我正在使用LinkButton内部 arepeater并且我正在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...

我感谢您的帮助。
谢谢。

4

2 回答 2

2

使用HyperLink而不是LinkButton.

来自 MSDN:

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

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

于 2013-06-10T08:00:28.103 回答
1

当您自己设置 href 并使用 ASP.Net 句柄的命令名称时存在矛盾(就像您无法决定谁负责)。

所以你不应该自己设置“href”,你应该设置 PostBackUrl 属性。
或者,如果它更适合您的需求,请使用超链接。

于 2013-06-10T09:35:01.240 回答