2012-05-02 5 views
6

아마도 쉬운 질문.asp.net에서 HTML없이 응답하는 방법

좋아, 내 페이지에 게시물이있어 한 문자열로 응답해야합니다. PHP에서

, 당신은 단순히 이런 식으로 뭔가를 할 수 :

<?php 
die ("test"); 

는 다음과 같은 웹 서버 액세스를에이 페이지를 배치 할 수 있습니다 그래서

localhost/test.php 

, 내가해야 할 C#에서 똑같은. 에 대한 응답으로 "<html><head><style type="text/css"></style></head><body>test</body></html>" :

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

내가 갖는 :

내가 응답하려고

.

어떻게 HTML없이 정확한 응답을 반환하도록 asp.net을 만들 수 있습니까?

나는 기본적인 지식이 부족한 것으로 알고 있지만 온라인에서는 아무것도 찾을 수 없다.

+1

이 거짓 다음의 HTML 소스 변경을 설정 한 경우, VS2010을 사용하여 "ASP.NET 웹 응용 프로그램"을 새로 시작하고 코드를 사용하면 "test"만 예상대로 생성됩니다. – banging

답변

5

*.aspx 파일에 있는지 확인하여 Page_Load 이벤트 핸들러 것 :

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

ashx를 시도하고 어떤 일이 일어날 지 봅시다. – user194076

+0

고맙습니다. ashx 작품! – user194076

+0

당신은'context.Response' (또는 매개 변수 이름이 무엇이든간에) 보통의'Response' 대신에 사용할 것이라는 것을 명심하십시오. – Matthew

10

이전 응답 버퍼를 지우고 새 출력을 쓸 수 있습니다. 그것이 거짓이라면, 당신은 AutoEventWireup="true"이 상단에,

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

    } 
+0

나는 downvote하지 않았지만 도움이되지 않습니다. 어쩌면 내 대본을 어떻게 부르는지를 바꿀 필요가 있을까요? 현재 aspx와 cs 파일이 모두있는 웹 사이트를 만들고 있습니다. – user194076

+0

당신이 붙이고있는 이벤트를 변경해보십시오. 대신'Page_PreInit'을 시도하십시오. – lukiffer

5

난 당신이 찾고있는 생각 (이 아닌지?) 전화하지 마라.

또한 페이지를 컴파일했는지 확인하십시오.

또 다른 제안은 Generic Handler (즉, *.ashx)을 사용하는 것입니다. 이는 일반적인 웹 폼 수명주기를 사용하지 않으며 수행중인 작업에 더 적합 할 수 있습니다.

+0

도움이되지 않습니다. 여전히 동일합니다. – user194076

+3

저에게 맞습니다. :-D – tzerb

+0

@ user194076 이것이 답이되어야합니다. 또한 ContentType 앞에 Response.Clear()를 추가하여 다음을 확인하십시오. P – Alpha2k

2

나를 위해 그것은 단지 실제 텍스트를 생성합니다. response.write(); 성명서. 나는 명확성을 위해 완전한 코드를 업로드하고있다.

비주얼 스튜디오 : 뒤에 2010

코드 :

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

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> 

OUTPUT & HTML 자료 :

,

본인은 다른 HTML 태그가 포함되어 있지 않습니다.

원하는 결과를 얻고 있습니다. 마스터 페이지에서이 코드를 시도했지만 동일한 결과를 얻습니다.

확인하세요 으로 AutoEventWireup = "true"로 내가 문제를 재현 할 수 없어요이

<!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> 
관련 문제