0

我是新来的ASP.Net。希望你不介意我的问题对某些人来说是如此简单。

在我的code.aspx页面中,我有一个超链接:

  <asp:HyperLink ID="HyperLink1" runat="server">

code.aspx.cs,我希望 HyperLink1 导航到: Show.asp page with an id

喜欢:

HyperLink1.NavigateUrl="'id'/~Show.asp?id={0}";//it seems the syntax is wrong.

你能告诉我一个正确的语法吗?

4

4 回答 4

3

您可以使用String.Format

HyperLink1.NavigateUrl = String.Format("id/~Show.asp?id={0}", myID);

myID您要替换的值在哪里{0}。作为旁注,您确定扩展名不是aspx代替asp吗?ASP 与Active Server Pages相关,而它是已编译页面aspx的扩展。ASP.NET

于 2013-09-25T13:23:20.193 回答
1
String.Format("Show.asp?id={0}", id);

这假设id是一个变量,它保存将要传递的值。

于 2013-09-25T13:22:48.740 回答
1

这取决于应该如何制定 URL。您可以简单地使用标记:

NavigateUrl="/url.aspx?id=1"

但这一点都不是动态的,很可能只使用原始<a>元素。尽管如果您需要,它确实有助于在代码隐藏中动态更改它,例如在 PostBack 上。

您也可以在代码隐藏中设置整个内容:

link.NavigateUrl = string.Format("/url.aspx?id={0}", id);

否则,您可以在标记中提供格式并在代码隐藏中更改它(我发现这通常很有用,以便通过仅查看标记来明确链接 - 设计人员等不需要找到代码隐藏参考在哪里定义 URL 的页面部分是为了查看它的去向):

NavigateUrl="/url.aspx?id={0}"

然后使用以下代码在代码隐藏中更改它:

link.NavigateUrl = string.Format(link.NavigateUrl, id);

当然,您也不需要使用string.Format,您可以使用运算符(即 )“本机”连接字符串"/url.aspx?id=" + id.ToString()

还有其他方法,例如在转发器中使用内联脚本来访问数据项,但我不会给出示例,因为我很少提倡这样做(仅在绝对必要的情况下这样做)。

于 2013-09-25T13:27:28.027 回答
1

尝试这个:

protected void Page_Load(object sender, EventArgs e)
{
    int id = 35;
    HyperLink1.NavigateUrl = "~/Show.asp?id=" + id;
}
于 2013-09-25T13:28:05.907 回答