我是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.
你能告诉我一个正确的语法吗?
答案 0 :(得分:3)
您可以使用String.Format
HyperLink1.NavigateUrl = String.Format("id/~Show.asp?id={0}", myID);
其中myID
是要用{0}
替换的值。作为旁注,您确定扩展程序不是aspx
而不是asp
吗? ASP与Active Server Pages相关,而aspx
是ASP.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;
}