Webmethod can't remove Object { d: “” }

夙愿已清 提交于 2019-12-12 10:04:41

问题


What I want to do is instead of sending Object { d : "{"FileID":"1213"}" } send "{"FileID":"1213"}"

My current code:

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:


Microsoft stack Json serializers are pretty much obsolete and should be avoided at all costs. Instead you should be using (and newer .NET Web stack already is by default) Json.NET implementation.

If you don't have it installed you can do so by running Install-Package Newtonsoft.Json in your NuGet console window. Also make sure you are using Newtonsoft.Json;.

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


来源:https://stackoverflow.com/questions/20530841/webmethod-cant-remove-object-d

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!