2011-03-14 2 views
1

Я пытаюсь получить доступ к значению из кода позади, чтобы создать строку запроса. Это самый простой способ, о котором я думал, но если у вас есть какие-либо рекомендации, пожалуйста, не стесняйтесь высказать свои мысли:html доступ к переменной значения из C# codebehind

У меня есть эта ссылка, которая сгенерировала бы строку запроса и запускала бы лайтбокс, чтобы показать страницу перед главная страница:

<a id="link" runat="server" href="thepage.aspx?id=<%strtest%>">Show the page with strtest</a> 

код позади:

public string strtest = ""; 
: 
string strTestID = Request.QueryString["ID"].ToString(); 
: 
strtest = strTestID ; 

на данный момент, это было бы просто дать мне пустой осветителя. Если я выберу лайтбокс и увижу URL-адрес, он будет выглядеть так.

thepage.aspx?id=<%strtest%> 

Так, как я уже сказал, я сделал самый простой способ, о котором я могу думать. Я также думал о реализации JavaScript с этим

string jsString= "changeLink('" + strtest + "');"; 

Но это дало бы мне ошибку с моими параметрами, которые кстати странно, как это работает и без него.

Так что, любая помощь приветствуется.

+0

Из того, что я вижу, strtest должен быть там, но он не распечатывается с помощью <% = strtest%>. Кроме этого, я не вижу, что может быть проблемой. –

ответ

3

Вы видите это поведение из-за атрибута «runat =» server на теге привязки. Удалите атрибут, и значение будет отображаться правильно. Кроме того, вы хотите изменить код с <% strtest%> до <% = strtest%>

+0

работал отлично. спасибо – gdubs

2

Я думаю, что вы хотите:

<a id="link" href="thepage.aspx?id=<%=strtest%>">Show the page with strtest</a> 

В ASP.NET 4, это предпочтительнее:

<a id="link" href="thepage.aspx?id=<%:strtest%>">Show the page with strtest</a> 

Эта форма автоматической кодировки помогает предотвратить XSS и другие атаки.

+0

Как вы думаете, что выполнение такого рода строк запроса безопасно? – gdubs

+0

Я не эксперт по безопасности, но это зависит от того, откуда приходит «strtest». Если это происходит из пользовательских значений ввода или формы, где это может быть злонамеренно создано, то это определенно может быть проблемой. Новый синтаксис '<%: %>' определенно помогает смягчить этот риск. – CodingGorilla

+1

всегда есть возможность для хакеров внедрить ваш код, особенно с помощью запроса, потому что каждый может видеть, что страница нуждается в некотором идентификаторе. Предложение: всегда проверяйте идентификатор из строки запроса, является ли идентификатор действительным идентификатором. – obulet

Смежные вопросы