Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#asp.net打印json_C#_Asp.net_Ajax_Json_Themes - Fatal编程技术网

使用C#asp.net打印json

使用C#asp.net打印json,c#,asp.net,ajax,json,themes,C#,Asp.net,Ajax,Json,Themes,好的,我有一些jQuery代码,它将向aspx文件发送一个AJAX请求 我的Spellchecker.aspx文件如下所示: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Spellchecker.aspx.cs" Inherits="Spellchecker" %> <head id="Head1" runat="server" /> 因此,在一个警报框中,我看到了json数据,然后是来回答您的实际问题

好的,我有一些jQuery代码,它将向aspx文件发送一个AJAX请求

我的Spellchecker.aspx文件如下所示:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Spellchecker.aspx.cs" Inherits="Spellchecker" %>
<head id="Head1" runat="server" />

因此,在一个警报框中,我看到了json数据,然后是来回答您的实际问题“为什么我需要head元素”-因为ASP.NET将您的CSS链接和一些JavaScript导入放在这里

现在还不清楚您到底想在这里做什么,但看起来您可能想创建一个Web服务或将一个方法公开为ScriptMethod。使用ASPX页面输出对AJAX请求的响应是很奇怪的

调查或调查

HttpHandler允许您完全管理响应。因此,您将创建一个处理程序,并将其挂接到“SpellChecker.ashx”,处理程序可以直接写入响应流

public class SpellCheckerHttpHandler : IHttpHandler
{
    public bool IsReusable { get { return true; } }

    public void ProcessRequest(HttpContext context)
    {
        //Write out the JSON you want to return.
        string json = GetTheJson();

        context.Response.ContentType = "application/json";
        context.Response.Write(json);
    }
}
然后,在system.webServer元素内的Web.Config中,添加:

<handlers>
    <add name="SpellChecker" path="~/SpellChecker.ashx" type="MyNamespace.HttpHandlers.SpellCheckerHttpHandler, MyAssembly" />
</handlers>


现在您可以向处理程序发出请求,如
http://localhost/SpellChecker.ashx?TextToCheck=xyz代码> 

如果您的所有页面都是处理输入和输出JSON,请考虑使用以ASHX结尾的“泛型处理程序”页,而不是以ASMX结尾的“Web页”。它没有太多的过头,不会尝试加载主题等

通过控制输出的内容类型,可以将其输出为JSON而不是XML或其他内容:

context.Response.ContentType = "application/json";

这两个选项看起来都太复杂,无法简单地输出一些json。回答:写的很好,为什么我不使用它?我不想仅仅为了让web服务运行就写30行。处理程序示例有点模糊,但我肯定要测试该方法。HttpHandler方法实际上非常简单。我将用一个简单的例子更新我的答案。是的,它似乎很有效。然而,我解决不了一个问题。当我在浏览器中键入url时,我得到了这个信息:{“id”:1,“json”:[5,10,15,20],“0”:“99”}(我的json数据),然而,出于某种原因,javascript将响应作为json对象抓取,json.length在javascript中是“未定义”的,但它可以访问json[0],并在警报框中返回99。有什么想法吗?或者我应该单独做一个主题,因为我们似乎在钻研javascript/jquery的怪癖。我会为JS问题单独做一个主题,因为它有点相关,但不是真的。很高兴我能帮忙。是的,我就是这么做的。现在我想我遇到了javascript问题,因为jquery认为返回的json对象是空的,但可以以某种方式访问其变量。
context.Response.ContentType = "application/json";