NavigateUrl Tag的正确语法

时间:2013-09-25 13:20:20

标签: c# asp.net

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

在我的code.aspx页面中,我有一个HyperLink:

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

code.aspx.cs中,我希望HyperLink1导航到:带有id的Show.asp页面

像:

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

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

4 个答案:

答案 0 :(得分:3)

您可以使用String.Format

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

其中myID是要用{0}替换的值。作为旁注,您确定扩展程序不是aspx而不是asp吗? ASP与Active Server Pages相关,而aspxASP.NET编译页面的扩展。

答案 1 :(得分:1)

String.Format("Show.asp?id={0}", id);

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

答案 2 :(得分: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())。

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

答案 3 :(得分:1)

试试这个:

protected void Page_Load(object sender, EventArgs e)
{
    int id = 35;
    HyperLink1.NavigateUrl = "~/Show.asp?id=" + id;
}