在c#asp.net中单击了什么超链接?

在c#asp.net中单击了什么超链接?,c#,asp.net,hyperlink,C#,Asp.net,Hyperlink,我正在制作一个asp.net web应用程序,它必须播放视频。在我的起始页中,每个视频都有一个超链接。除名称外,所有超链接都是相同的。这意味着它们都链接到同一个页面。我想知道是否有一个选项可以知道点击了哪个超链接。我想检索超链接的名称 我生成超链接的代码如下所示: foreach (FileInfo i in corFiles) { HyperLink t = new HyperLink(); t.Text = i.Name; t.Navi

我正在制作一个asp.net web应用程序,它必须播放视频。在我的起始页中,每个视频都有一个超链接。除名称外,所有超链接都是相同的。这意味着它们都链接到同一个页面。我想知道是否有一个选项可以知道点击了哪个超链接。我想检索超链接的名称

我生成超链接的代码如下所示:

foreach (FileInfo i in corFiles)
    {
        HyperLink t = new HyperLink();
        t.Text = i.Name;
        t.NavigateUrl = "page.aspx";
        CorrectArray.Add(t);
    }
    return CorrectArray;
超链接的文本对于视频是唯一的,这意味着我可以根据文本名称将视频的src目标更改为播放。所以问题是这样的。当用户单击超链接时,是否有任何方法可以检索超链接的文本名称

我希望你能帮忙!提前谢谢

问候
Magnus

如果您想发回同一页面,可以添加链接按钮而不是超链接

foreach (FileInfo i in corFiles)
{
   LinkButton t = new LinkButton();
   t.Text = i.Name;
   t.Click += new EventHandler(DynamicClick);
   t.CommandName = i.Name;
   CorrectArray.Add(t);
}

void DynamicCommand(Object sender, CommandEventArgs e) 
{
     // using e.CommandName and e.CommandArgument you can differentiate the hyperlinks
}

如果要将文章发回同一页面,可以添加链接按钮而不是超链接

foreach (FileInfo i in corFiles)
{
   LinkButton t = new LinkButton();
   t.Text = i.Name;
   t.Click += new EventHandler(DynamicClick);
   t.CommandName = i.Name;
   CorrectArray.Add(t);
}

void DynamicCommand(Object sender, CommandEventArgs e) 
{
     // using e.CommandName and e.CommandArgument you can differentiate the hyperlinks
}

如果我理解你的问题,
如果我理解您的问题,您必须在超链接标记中添加name属性,并通过获取名称在代码中获取其值,
您必须在超链接标记中添加name属性,并通过获取名称在代码中获取其值

您可以使用集成到.NET中的JQuery在用户单击超链接时获取其文本。要能够从Javascript访问超链接的文本,只需将其添加到链接内的custon标记中,就可以得到类似这样的内容。由于超链接html是从.NET服务器端代码生成的,因此必须从.NET服务器端上下文生成此自定义标记。

用户单击超链接后,可以使用集成到.NET中的JQuery获取超链接文本。要能够从Javascript访问超链接的文本,只需将其添加到链接内的custon标记中,就可以得到类似这样的内容。由于超链接html是从.NET服务器端代码生成的,因此您必须从.NET服务器端上下文生成此自定义标记。

为什么不使用查询字符串

 t.NavigateUrl = "page.aspx?video=<someid>"
t.NavigateUrl=“page.aspx?video=”

在页面中,您可以解析查询字符串以显示正确的视频?

为什么不使用查询字符串

 t.NavigateUrl = "page.aspx?video=<someid>"
t.NavigateUrl=“page.aspx?video=”


在页面中,您解析查询字符串以显示正确的视频?

您不是为每个查询字符串设置了一个ID吗?只要用户单击任意一个查询字符串,您就可以在用户机器上保存cookiehyperlink@MelanciaUK. 不,我没有为他们每个人设置一个ID,因为将有100多个,他们的名字将是唯一的,所以他们可以作为一个ID工作。但是如果这更容易,我可以给他们ID吗?我假设数字就足够了?我只是想知道他们的ID是否和他们的名字一样,因为在代码背后你可以很容易地访问ID。你不是为他们每个人都设置了一个ID吗?只要用户点击任何一个,你就可以在用户机器上保存cookiehyperlink@MelanciaUK. 不,我没有为他们每个人设置一个ID,因为将有100多个,他们的名字将是唯一的,所以他们可以作为一个ID工作。但是如果这更容易,我可以给他们ID吗?我想数字就足够了?我只是想知道他们的ID是否和他们的名字一样,因为在代码背后你可以很容易地访问ID。比如说我有100个不同的超链接。而不是将每个超链接链接到单个页面。我想让他们链接到同一页,但根据点击的超链接,同一页将显示不同的视频。因此,我需要一种方法来知道用户单击哪个超链接。现在,由于每个视频的名称都是唯一的,我的想法是,当用户单击超链接时,我可以以某种方式检索该名称,然后我可以动态更改新页面将显示的视频。谢谢你迄今为止的帮助!您的应用程序是Asp.net mvc吗?如果是这种情况,您将视频的名称隐藏在一个输入类型中,并将其名称设置为例如
,然后在单击链接时将其发布到控制器。在控制器中,您可以获得如下值
string video=Request.Params['video']
假设我有100个不同的超链接。而不是将每个超链接链接到单个页面。我想让他们链接到同一页,但根据点击的超链接,同一页将显示不同的视频。因此,我需要一种方法来知道用户单击哪个超链接。现在,由于每个视频的名称都是唯一的,我的想法是,当用户单击超链接时,我可以以某种方式检索该名称,然后我可以动态更改新页面将显示的视频。谢谢你迄今为止的帮助!您的应用程序是Asp.net mvc吗?如果是这种情况,您将视频的名称隐藏在输入类型中,并将其名称设置为例如
,然后在单击链接时将其发布到控制器中。在控制器中,您获得的值如下
string video=Request.Params['video']
,但这样做会包括我必须为每个超链接创建一个新页面吗?或者我完全关闭了?@M.frank-无需创建新页面,使用带有查询字符串的相同页面url。除此之外,您不需要超链接,您可以使用链接按钮并处理链接按钮的单击事件,在单击事件中,您可以知道已单击了哪个按钮。@M.frank-很高兴为您提供了帮助。:)但这样做会包括我必须为每个超链接创建一个新页面吗?或者我完全关闭了?@M.frank-无需创建新页面,使用带有查询字符串的相同页面url。除此之外,您不需要超链接,您可以使用链接按钮并处理链接按钮的单击事件,在单击事件中,您可以知道已单击了哪个按钮。@M.frank-很高兴为您提供了帮助。:)