0

我有一个普通的 aspx 页面,它接受 POST 请求,并希望向通过 http 发出请求的人发回响应。

我使用 response.write(data) 将响应发送回用户,但是它发送回整个页面而不仅仅是“数据”

这是代码片段

protected void Page_Load(object sender, EventArgs e)
{

  Response.Clear();
  Response.ContentType = "text/plain";

  string myparam = (string)Request.QueryString["myparam"];

  //Perform some operations then generate a response
  data="Ok"
  Response.Write(data);
  Response.End();

}// End

问题不是只发回数据,即“Ok”,而是发送“OK”加上页面的整个DOM“

每当有人通过 http 请求我的 POST 页面时,我需要有关如何删除其余字符串的帮助。我只想在另一端得到“好的”。

4

1 回答 1

-1

您可以使用缓冲和刷新。

Response.BufferOutput = true

// iterate through content
Response.Write(content so far)
Response.Flush()

... keep going

Response.Write(more content)
Response.Flush()

如果您正在寻找构建 Web 服务 API 并返回数据而不是响应,您可以阅读以下文章: http ://www.iwantmymvc.com/rest-service-mvc3

特别查看返回 Json 内容的部分:

    [HttpPost]
    public JsonResult CommentList(List<Comment> items)
    {
        var model = this.commentManager.CreateComments(items);
        return Json(model);
    }

您的方法是 PageLoad ,这意味着您正在返回一个网页,但您只想返回一个更接近 Web 服务 api 响应的字符串。希望这会引导您朝着正确的方向前进。


您是否尝试过将内容类型明确设置为文本/纯文本?

context.Response.ContentType = "text/plain";
于 2012-07-16T00:50:42.730 回答