문제

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);
    }


};
도움이 되었습니까?

해결책

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);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top