Web方法无法删除对象{d:“”}

时间:2013-12-11 22:01:48

标签: c# asp.net json webmethod

我想要做的不是发送Object { d : "{"FileID":"1213"}" }发送"{"FileID":"1213"}"

我目前的代码:

using System;
using System.Web.Mvc;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Script.Serialization;

[ScriptService]
partial class testing_class : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        Session["FileID"] = Request.QueryString["FileID"];

    }

    public static string returnJSON(object o)
    {
        JavaScriptSerializer js = new JavaScriptSerializer();
        return js.Serialize(o);
    }

    [WebMethod]
    [ScriptMethod(UseHttpGet = true,ResponseFormat = ResponseFormat.Json)]
    public static string CurrentFile()
    {
        var d = new { FileID = "123" };
        return returnJSON(d);
    }


};

1 个答案:

答案 0 :(得分:3)

Microsoft堆栈Json序列化程序已经过时,应该不惜一切代价避免使用。相反,您应该使用(并且默认情况下已经是新的.NET Web堆栈)Json.NET实现。

如果您没有安装它,可以通过在NuGet控制台窗口中运行Install-Package Newtonsoft.Json来实现。另外请确保您是using Newtonsoft.Json;

[WebMethod]
[ScriptMethod(UseHttpGet = true,ResponseFormat = ResponseFormat.Json)]
public static string CurrentFile()
{
    var d = new { FileID = "123" };
    return JsonConvert.SerializeObject(d);
}