如何在中继器内的超链接 navigateUrl 中传递参数

How to pass argument in hyperLink navigateUrl inside a repeater

我正在开发视频门户应用程序,我使用 html 模板进行设计。我已经使用 asp:Repeater 控制显示所有的视频图像。单击特定图像时,页面将重定向到视频详细信息页面。 这是我的 html 代码,

<asp:Repeater ID="rp_videos" runat="server">
    <ItemTemplate>
        <div class="col-md-4 col-sm-6 small-grid">
            <div class="vid-img-holder wow pulse" data-wow-duration="1s">
                <div class="top-shadow">
                    <span>'<%# Eval("time_before") %>'</span>
                    <span>From <a href="https://www.youtube.com/"><i class="fa fa-youtube-play"></i></a></span>
                    <span><i class="fa fa-eye"></i>'<%# Eval("views") %>'</span>
                </div>
                <asp:HyperLink ID="hl_video_img" runat="server" NavigateUrl="~/Views/VideoDetail.aspx">
                    <asp:HiddenField ID="hf_file" runat="server" Value="'<%# Eval("file") %>'" />
                    <asp:Image ID="img_video_image" runat="server" class="img-responsive hidden-sm hidden-xs" ImageUrl='<%# Eval("image") %>' AlternateText="video_thumb" />
                    <img class="img-responsive hidden-md hidden-lg" src="../images/main-vid-image-smmd-1.jpg" alt="video_thumb" />
                    <span class="play-icon">
                        <img class="img-responsive play-svg svg" src="../images/play-button.svg" alt="play" onerror="this.src='images/play-button.png'" />
                    </span>
                </asp:HyperLink>
                <h3 class="vid-author">
                    <span>By <a href="~/Views/Profile.aspx" title="Posts by admin" rel="author">'<%# Eval("publisher_name") %>'</a>
                    </span>
                     <a href="video-detail.html">'<%# Eval("title") %>'</a>
                </h3>
                <div class="bottom-shadow"></div>
                <div class="overlay-div"></div>
            </div>
        </div>
    </ItemTemplate>
</asp:Repeater>

我想传递一个视频被点击的详情,这里是所有视频页面的视图。

在您的 hyperlink 中添加导航中的代码 URL(您必须使用单引号

<asp:HyperLink ID="hl_video_img" runat="server" NavigateUrl='~/Views/VideoDetail.aspx?videoid=<%# DataBinder.Eval(Container.DataItem,"video_id")%>'>

因此您生成了正确的 link 并传递了您要打开的视频的 ID。

现在在您的 VideoDetail.aspx 中添加代码以从 page_load 函数中的查询字符串中获取参数

  if (Request.QueryString.HasKeys())
  {
    try 
    {
       //get the id from query string
       string videoID = Request.QueryString["videoID"].ToString();
    }
    catch {  }
 }