2010-11-10 2 views
0

Я хочу создать строку, как один, упомянутых ниже в C# код позади:Как вставить кавычки в строку с указанной переменные в C#

<a href="~/Online Exam/Question.aspx?id=1"></a> 

код, который я использую сейчас показано ниже:

string url= string.Format("\"~/Online Exam/Question.aspx?id={0}\"", id); 
td.Text = "<a href=" + url + ">" + id + "</a>"; 

, но я не могу получить желаемый результат с вышеуказанным кодом. пожалуйста, помогите мне с этим.

+1

Что вы получите? Код выглядит нормально. –

+0

Allthough '"> "+ id +" "' не соответствует образцу. –

+0

Что не так с выходом? Сейчас я предполагаю, что переменная td является элементом вашей веб-страницы, поэтому я считаю, что вы должны использовать innerhtml, а не текст. – Wade73

ответ

5

Использование

string url= String.Format("~/Online Exam/Question.aspx?id={0}", id); 
td.Text = String.Format("<a href=\"{0}\">{1}</a>", url, id); 

или, если вы заботитесь о String.Format() производительности (из-за специфичности культуры):

string url= String.Concat("~/Online Exam/Question.aspx?id=", id); 
td.Text = String.Format("<a href=\"{0}\">{1}</a>", url, id); 

Правильно! Потому что <a> не анализирует ~ как приложение root, только <asp:HyperLink>. Так

td.Controls.Add(new HyperLink { Text = id, NavigateUrl= url }); 
+0

проверила код, но вывод, который хранится в td.text - http: // localhost: 51231/OnlineExam/Online% 20Exam/~/Online – Piyush

+0

@Piyush: см. мое обновленное сообщение – abatishchev

+0

, но он показывает тот же результат. Кажется, ничего не меняется. – Piyush

0

Вы можете попытаться установить кавычки в последней строке, например:

string url= string.Format("~/Online Exam/Question.aspx?id={0}", id); 
td.Text = "<a href=\"" + url + "\">" + id + "</a>"; 

делает код более логичным, так как хорошо, так как ваши переменной url теперь действительно содержащими только URL.

(не проверено)

+0

Лучше использовать 'String.Format' в обоих случаях или' String.Concat() 'в первом и' String.Format() 'в секундах. – abatishchev

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