2012-05-02 14 views
6

Forse una domanda facile.Come rispondere senza html in asp.net

OK, ho un post sulla mia pagina e devo rispondere con una stringa.

in PHP, si può semplicemente fare qualcosa di simile:

<?php 
die ("test"); 

allora è possibile inserire questa pagina su un server web e l'accesso in questo modo:

localhost/test.php 

così, ho bisogno di fare la stessa cosa esatta in C#.

Quando provo a rispondere con:

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

sto ottenendo: "<html><head><style type="text/css"></style></head><body>test</body></html>" come risposta.

Come posso rendere asp.net solo per restituire la risposta esatta, senza html?

So che probabilmente mi manca qualche conoscenza di base, ma non riesco a trovare nulla online.

+1

Sono in grado di riprodurre il problema; Con VS2010 l'avvio di una nuova applicazione "Applicazione Web ASP.NET" e l'utilizzo del codice producono come previsto: solo "test". – banging

risposta

5

Assicurarsi che nel file *.aspx, in cima hai AutoEventWireup="true", se è falso il gestore di eventi Page_Load sarà (o non c'è?) non essere chiamato.

Inoltre, assicurarsi di aver compilato la pagina.

Un altro suggerimento è quello di utilizzare un Generic Handler (ovvero *.ashx), questi non utilizzano il ciclo di vita tipico dei Webform e potrebbero essere più adatti a ciò che si sta facendo.

+0

Lasciami provare Ashx e vedere cosa accadrà. – user194076

+0

Grazie mille. Ashx funziona! – user194076

+0

ricordate che userete 'context.Response' (o qualunque sia il nome del parametro) invece di semplice' Response'. – Matthew

10

È possibile cancellare il buffer di risposta precedente e scrivere il nuovo output.

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

Non ho fatto downvote, ma non aiuta. Forse ho bisogno di cambiare il modo in cui sto chiamando il mio script? Attualmente sto creando un sito Web con entrambi i file aspx e cs. – user194076

+0

Prova a cambiare l'evento a cui stai collegando - prova invece 'Page_PreInit'. – lukiffer

5

penso che stai cercando:

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

    } 
+0

Non aiuta. ancora lo stesso. – user194076

+3

Funziona per me. :-D – tzerb

+0

@ user194076 questa dovrebbe essere la risposta, ho anche aggiunto Response.Clear() prima di ContentType solo per essere sicuro: P – Alpha2k

2

Per me genera solo testo effettivo in response.write(); dichiarazione. Sto caricando il codice completo per chiarezza.

Visual Studio: 2010

Codice Dietro:

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(); 
    } 
} 

CODICE 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> 

USCITA Fonte & HTML:

POSSO VEDERE SOLO QUESTO ALTRO HTML TAG È INCLUSO

Sto ottenendo il risultato desiderato. Ho provato questo codice con Master-Page ottengo anche lo stesso risultato.

Assicurati che il tuo AutoEventWireup = "true" se giro questa falsa sorgente cambia quindi HTML a questo

<!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> 
Problemi correlati