2012-04-25 3 views
3

У меня есть код php, который я преобразовал в код asp.net. PHP-код просто перекликается с ответом, который клиент читает и интерпретирует, однако в asp.net сгенерированный вывод вынужден быть в формате html, что является именно тем, что я использую метки asp.net для печати вывода.Есть ли эквивалент эха в asp.net C#

Есть ли способ, которым я могу достичь того же, что и echo в php, или есть очень легкий код, который может помочь мне правильно разобрать текст html?

EDIT:

То, что я пытаюсь сделать, это как

// получить почтовые данные

эха "Некоторые вещи"

Моего текущее тестирование aspx file является:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grabber.aspx.cs" Inherits="qProcessor.grabber" %> 

и код позади имеет только один метод:

protected void Page_Load(object sender, EventArgs e) 
    { 
     //this.Response.Write("Welcome!"); 
    } 

Спасибо.

+0

Можете ли вы показать нам, что у вас есть для кода ASP.net? – RQDQ

+0

Возможный дубликат [Что такое эквивалент ASP.Net для эха PHP?] (Http://stackoverflow.com/questions/2977675/what-is-the-asp-net-equivalent-to-phps-echo) – nmnsud

ответ

13

Эквивалент один к одному будет Response.Write:

Response.Write("some text"); 

Тем не менее, ASP .NET и PHP очень различные рамки. С ASP.NET (включая структуру MVC) редко приходится писать напрямую в поток ответов таким образом.

Один такой случай был бы, если бы вы хотели вернуть очень легкий ответ. Вы могли бы сделать что-то вроде этого:

Response.ContentType = "text/xml"; 
Response.Write("<root someAttribute = 'value!' />"); 

Любой метод другой, чем при использовании Response непосредственно может (и, вероятно, будет) изменять выходной сигнал. Короче говоря, если вы хотите просто сбросить необработанные данные в HttpResponse, вы хотите использовать Response.Write().

+0

I продолжайте получать эту ошибку, когда я пробую это: «Ссылка на объект не установлена ​​в экземпляр объекта». Что может быть проблемой и как я могу ее решить? Благодарю. –

+1

@ChibuezeOpata Трудно сказать, не видя ваш образец кода. Наверное, лучше сделать еще один вопрос. Если вы это сделаете, включите соответствующий код и точное сообщение об ошибке, которое вы получаете. – Yuck

+0

Спасибо за ваше сообщение и пояснительный ответ, знаете ли вы, что может быть причиной? Проверьте обновление вопроса для кода ... –

2

Вы можете написать любой текст, который вы хотите клиента:

Response.Write(yourString); 
1

Вы можете использовать Response.Write() для этого:

Response.Write("your text here"); 
5

Вы можете использовать Response.Write("");

или в своей странице .aspx <%="string"%>

+2

И с .NET 4.0 '<%:%>', который добавляет кодировку HTML. – Oded

+0

@oded: правильный! – Zaki

+0

Эти теги не записываются непосредственно в поток ответов. Он очень похож, но не совсем так же, как 'echo' и' Response.Write() '. Особенно с '<%: ... %>', который будет делать интеллектуальное кодирование HTML перед перекачкой значения в ответ. – Yuck

1

Как mentioned by Yuck вы действительно не нужно использовать Response.Write (который является прямым портом эха) в ASP большую часть времени. Учитывая ваш пример, вы, вероятно, хотите сделать что-то вроде этого:

protected void Page_Load(object sender, EventArgs e) 
{ 

    this.Controls.Add(new LiteralControl(Server.HTMLEncode("<h1>Welcome!</h1>"))); 
    //will actually print <h1>Welcome!</h1>, rather than Welcome! that's bolded/centered/etc. 
} 

Или вы могли бы даже добавить буквальное контроль, этикетки и т.д.к разметке, а затем просто установите свойство Text в код позади. Это стандартный подход для решения этой проблемы в среде ASP.

+0

вот что я делаю, но ответ заканчивается выпуском в формате html. –

+0

Какой * должен быть тип ответа? Я добавил метод HTMLEncode, чтобы вы могли, например, выписывать теги и отображать их как текст, а не как HTML. – Servy

+0

Спасибо за ваши усилия, я понял, что проблема связана с компьютерным неправильным поведением, но теперь все работает нормально. Благодарю. –

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