GridView HyperlinkField NavigateUrl重定向到login.aspx页面或所需页面

时间:2017-12-17 17:33:38

标签: c# asp.net gridview

我想在主页搜索结果功能上找到的页面选项到gridview的超级链接字段如果用户已登录,则导航将重定向到所需的页面,如果没有重定向到登录/注册页面。我将如果有人协助我如何做,请感激不尽。谢谢

我没有太多的知识,但我知道我知道的一些

<% if (Session["user"] == null)  { %>
<li><a href="login.aspx">Login/Register</a></li>
<% } %> 

我也知道

<asp:TemplateField HeaderText="Name" SortExpression="Name">
    <ItemTemplate>
        <asp:HyperLink ID="HyperLink1" Text='<%# eval("Name") %>' NavigateUrl='<%#"~/Pages/Topic.aspx?topicId=" + eval("topicId") %>' runat="server"></asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>

1 个答案:

答案 0 :(得分:0)

您可以在codeBehind(~/login.aspx处理程序)中将navigateUrl分配给gridView_ItemDataBound属性,但它不会阻止用户在地址行中键入http://server.com/Pages/Topic.aspx?topicId=123并打开页面。
正确的解决方案是检查用户是否已登录topic.aspx页面(代码隐藏)并在必要时重定向到login.aspx?returnUrl=/Pages/Topic.aspx?topicId=123