2012-05-02 10 views
6

Pregunta fácil quizás.Cómo responder sin html en asp.net

Bien, tengo una publicación en mi página y necesito responder con una cadena.

en php, simplemente podría hacer algo como esto:

<?php 
die ("test"); 

para que pueda realizar esta página en un servidor web y acceder a él de esta manera:

localhost/test.php 

así, necesito hacer exactamente lo mismo en C#.

Cuando trato de responder con:

protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Write("test"); 
     Response.End(); 
    } 

que estoy recibiendo: "<html><head><style type="text/css"></style></head><body>test</body></html>" como respuesta.

¿Cómo puedo hacer que asp.net simplemente devuelva la respuesta exacta, sin html?

Sé que probablemente me faltan algunos conocimientos básicos, pero no puedo encontrar nada en línea.

+1

Soy incapaz de reproducir su problema; Con VS2010 comenzando una nueva aplicación "ASP.NET Web Application" y usando su código se produce como se esperaba: solo "prueba". – banging

Respuesta

5

Asegúrese de que en su archivo *.aspx, en la parte superior que tiene AutoEventWireup="true", si es falso el controlador de eventos Page_Load voluntad (o no?) no ser llamado

Además, asegúrese de haber compilado su página.

Otra sugerencia es utilizar un Generic Handler (es decir, *.ashx), estos no utilizan el ciclo de vida típico de formularios web y podrían ser más adecuados para lo que estás haciendo.

+0

Déjame probar ashx y ver qué pasará. – user194076

+0

Muchas gracias. ¡Ashx funciona! – user194076

+0

tenga en cuenta que usará 'context.Response' (o cualquiera que sea el nombre del parámetro) en lugar de simplemente' Response'. – Matthew

10

Puede borrar el búfer de respuesta anterior y escribir su nueva salida.

Response.Clear(); // clear response buffer 
Response.Write("test"); // write your new text 
Response.End(); // end the response so it is sent to the client 
+0

No perdonó, pero no ayuda. Tal vez necesito cambiar la forma en que llamo mi guion? Actualmente estoy creando un sitio web con archivos aspx y cs. – user194076

+0

Intente cambiar el evento al que se está conectando; intente en su lugar 'Page_PreInit'. – lukiffer

5

creo que está buscando:

protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.ContentType = "text/plain"; 
     Response.Write("test"); 
     Response.End(); 

    } 
+0

No ayuda. Siempre lo mismo. – user194076

+3

Funciona para mí. :-D – tzerb

+0

@ user194076 esta debería ser la respuesta, también agregué Response.Clear() antes de ContentType solo para asegurarme de: P – Alpha2k

2

Para mí solo Genera texto real en response.write(); declaración. Estoy cargando el código completo para mayor claridad.

Visual Studio: 2010

código subyacente:

public partial class Default2 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Write("I CAN ONLY SEE THIS NO OTHER HTML TAG IS INCLUDED"); 
     Response.End(); 
    } 
} 

CÓDIGO HTML

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

    </div> 
    </form> 
</body> 
</html> 

SALIDA & HTML Fuente:

SOLO PUEDO VER ESTO NO HAY OTRA ETIQUETA HTML INCLUIDA

Estoy obteniendo el resultado deseado. He intentado este código con Master-Page también obtengo el mismo resultado.

Por favor asegúrese de que su AutoEventWireup = "true" si a su vez esta fuente de falsos cambios continuación HTML en este

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title> 

</title></head> 
<body> 
    <form method="post" action="Default2.aspx" id="form1"> 
<div class="aspNetHidden"> 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZGivF0fgbeE6VebNR51MYSu3yJdsZ9DwEtIPDBVRf4Vy" /> 
</div> 

    <div> 

    </div> 
    </form> 
</body> 
</html> 
Cuestiones relacionadas