Аналог метода GET (PHP) в ASP.NET (C#)
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Аналог метода GET (PHP) в ASP.NET (C#) Expand / Collapse
Автор
Сообщение
22.06.2006 16:36
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 16.05.2007 12:30
Сообщ.: 71, Visits: 127
Не могу найти аналог метода GET в ASP.NET ! я знаю что в принципе есть, но не знаю что конкретно искать! Подскажите плз!!!
Сообщ. #899440
22.06.2006 16:45
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
В каком смысле? Считывать переменные переданные через строку запроса можно через коллекцию Request.QueryString. Это тебя интересует?
Сообщ. #899442
23.06.2006 11:42
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 16.05.2007 12:30
Сообщ.: 71, Visits: 127
Да интерисует!
Сообщ. #899495
23.06.2006 11:54
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
string id = Request.QueryString["id"];
if (null != id)
{
// ...
}
Сообщ. #899503
23.06.2006 12:02
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 16.05.2007 12:30
Сообщ.: 71, Visits: 127
Пишу такой код посмотрел в хелпе


private void Page_Load(object sender, System.EventArgs e)
{
label1.Text=Request.QueryString("id");
}



или


private void Page_Load(object sender, System.EventArgs e)
{
//label1.Text = Request["id"].ToString();
}



В обоих вариантах работает, есть ли какие нибудь отличия +/- ?
Сообщ. #899506
23.06.2006 12:13
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Разница есть. Request.QueryString["название_параметра"] возвращает значение этого параметра (в виде объекта типа System.String) или null если такого параметра не существует. Значит вызов ToString() является лишним так как значение и так уже является строкой. Главное же отличие, что если параметр с именем id не будет передан, то ты получишь исключение NullReferenceException. Поэтому надо всегда проверять, существует ли параметр с заданным именем, как сделано в моем примере.
Сообщ. #899507
23.06.2006 12:17
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 16.05.2007 12:30
Сообщ.: 71, Visits: 127
А как вот ее создать динамически такую строку я попробовал так но не получается!


private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection connect = null;
SqlDataReader reader = null;
try
{
connect = new SqlConnection(".........");
SqlCommand command = new SqlCommand("select id, "+
" from t_news ", connect);
connect.Open();

reader = command.ExecuteReader();
NewsRep.DataSource = reader;
NewsRep.DataBind();
}
catch (Exception ex)
{
label1.Text=ex.Message;
if (null != reader) reader.Close();
if (null != connect) connect.Close();
}
}
}




а в коде пытаюсь вывести так

<TABLE width="100%">
<TBODY><asp:Repeater id=NewsRep runat="server"><ITEMTEMPLATE>
<TR><% string id = DataBinder.Eval(Container.DataItem,"id");%>
<TD><A href="read.aspx?id=<%=id%>">Read more</A> </TD></TR></ITEMTEMPLATE></asp:Repeater></TBODY></TABLE>


в общем не работает)))

Сообщ. #899510
23.06.2006 12:32
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
2 shatalinalex

Скажи ты хотя бы смотрел ссылки на QuickStart-ы по ASP.NET котоорые я тебе давал? Хотя судя по вопросам, нет.

На этапе привязки данных нельзя использовать блоки <% ... %>. Можно только <%# ... %>. В твоем случае это будет выглядеть так:

<table width="100%">
<tbody>
<asp:Repeater id="NewsRep" runat="server">
<ItemTemplate>
<tr>
<td><a href="read.aspx?id=<%# DataBinder.Eval(Container.DataItem, "id") %>">Read more</a></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
</table>

Еще у тебя в коде ошибка. Не надо в данном случае пользоваться блоком try/catch. Замени catch (Exception ex) на finally и убери строку label1.Text=ex.Message; В случае ошибки ASP.NET выдаст тебе ее полное описание.

Сообщ. #899512
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 1:24