2

我有一个HyperLink使用NavigateUrlAttribute 并正确提供 URL 的地方,但此链接不会重定向目标页面。你能帮忙吗,但是当我使用后面的代码重定向 URL 时,它可以正常工作。我还提到了我在 Code behind 中使用的代码,但我不想把我的代码放在 code behind 上。你能帮我这里有什么问题吗?

        <asp:HyperLink ID="hlnkAddUser" runat="server" onclick="return GB_show('Add Hiring Manager', this.href, 500, 650)"
            ImageUrl="~/Images/Resources/thumb/add.png" ToolTip="Add Hiring Manager" Text="Add Hiring Manager"></asp:HyperLink>
        **<%--NavigateUrl='<%# "~/Recruiter/AddUser.aspx?UserId=0" + "&ProfileId=" + hdnClientId.Value  + "&UserTypeId=8"  %>'--%>**

        string hlnkAddUserurl = string.Format("~/Recruiter/AddUser.aspx?UserId=0" + "ProfileId=" + hdnClientId.Value + "UserTypeId=8");
        hlnkAddUser.NavigateUrl = hlnkAddUserurl;
4

2 回答 2

0

如果您的 onclick 函数将返回“false”,则默认浏览器操作(重定向到 href 属性中提供的页面)将不会发生。

确保 GB_Show 不返回 false。

于 2013-04-18T07:16:36.170 回答
0

您正在尝试使用数据绑定服务器标记,例如<%# #>,<%: %:>并且<%= %>如果它们位于数据绑定控件(例如 、 和 等)内,这些标记将GridView足够Repeater好用FormView

我建议您仅使用服务器端代码,因为即使您将代码放在上面,.aspx或者.aspx.cs它当然会在服务器端执行并向客户端(即用户或浏览器)发送响应。

因此,在这种情况下,执行以下代码并没有错。

string hlnkAddUserurl = string.Format("~/Recruiter/AddUser.aspx?UserId={0}&ProfileId={1}&UserTypeId={2}", 0, hdnClientId.Value, 8);
hlnkAddUser.NavigateUrl = hlnkAddUserurl;

注意:string.Format代码中显示的更正用法和查询字符串更正添加&在键值对之间

参考链接

  1. SO - 内联动态设置超链接控件的 navigateurl 属性
  2. SO - Asp.net HyperLink 动态创建 NavigateUrl 路径
  3. MSDN - 字符串格式
于 2013-04-18T07:50:50.697 回答