6

也许是简单的问题。

好的,我的页面上有一个帖子,需要回复一个字符串。

在 php 中,您可以简单地执行以下操作:

<?php
die ("test");

然后您可以将此页面放在网络服务器上并像这样访问它:

localhost/test.php

所以,我需要在 c# 中做完全相同的事情。

当我尝试回应时:

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

我得到:"<html><head><style type="text/css"></style></head><body>test</body></html>" 作为回应。

我怎样才能让 asp.net 只返回准确的响应,没有 html?

我知道我可能缺少一些基本知识,但在网上找不到任何东西。

4

5 回答 5

12

您可以清除先前的响应缓冲区并写入新的输出。

Response.Clear(); // clear response buffer
Response.Write("test"); // write your new text
Response.End(); // end the response so it is sent to the client
于 2012-05-02T02:37:14.577 回答
6

确保在您的*.aspx文件顶部AutoEventWireup="true",如果它为 false(或不存在?),Page_Load则不会调用您的事件处理程序。

另外,请确保您编译了您的页面。

另一个建议是使用Generic Handler(ie *.ashx),它们不使用典型的网络表单生命周期,并且可能更适合您正在做的事情。

于 2012-05-02T02:39:42.330 回答
5

我想你正在寻找:

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

    }
于 2012-05-02T02:38:34.310 回答
3

对我来说,它只在 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();
    }
}

代码

<%@ 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>

输出和 HTML 来源:

我只能看到这个没有包含其他 HTML 标记

我得到了想要的结果。我已经用 Master-Page 尝试过这段代码,我也得到了相同的结果。

请确保您的AutoEventWireup="true"如果我​​将此设置为 false 则 HTML SOURCE 更改为此

<!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> 
于 2012-05-02T04:50:20.460 回答
0

正如上面前面的答案所暗示的那样,您需要AutoEventWireup="true"以及Response.End()后面的代码。

于 2019-02-15T20:22:12.043 回答