2013-09-25 3 views
0

Я новичок в ASP.Net. Надеюсь, вы не возражаете, если моя проблема настолько проста с некоторыми людьми.Правильный синтаксис NavigateUrl Tag

В моей code.aspx странице, у меня есть гиперссылка:

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

В code.aspx.cs, я хочу, чтобы перейти к hyperlink1: Show.asp странице с идентификатором

Как:

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

Можете ли вы сказать мне правильный синтаксис?

ответ

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()).

Есть также другие способы, например, использовать встроенный скрипт в ретрансляторе для доступа к элементу данных, но я не буду приводить пример, поскольку я бы очень редко выступал за это (только в тех случаях, когда это абсолютно необходимо).

+0

спасибо за подробное объяснение ^^ –

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

Это предполагает id является переменной, которая содержит значение, которое будет передано.

+1

Спасибо, это так просто использовать ^^ –

+1

да, это !! ,net rocks – Anand

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

спасибо, расширение aspx, и я отредактировал его уже ^^ –

1

Попробуйте это:

protected void Page_Load(object sender, EventArgs e) 
{ 
    int id = 35; 
    HyperLink1.NavigateUrl = "~/Show.asp?id=" + id; 
} 
Смежные вопросы