2013-12-11 4 views
2

То, что я хочу сделать, это вместо того, чтобы посылать Object { d : "{"FileID":"1213"}" } отправить "{"FileID":"1213"}"WebMethod не может удалить объект {d: «»}

Мой текущий код:

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


}; 

ответ

2

Microsoft стек JSon сериализаторов довольно много устарели и его следует избегать любой ценой. Вместо этого вы должны использовать (и новый .NET Web-стек уже по умолчанию) Json.NET.

Если у вас его нет, вы можете сделать это, запустив Install-Package Newtonsoft.Json в окне консоли NuGet. Также убедитесь, что вы using Newtonsoft.Json;.

[WebMethod] 
[ScriptMethod(UseHttpGet = true,ResponseFormat = ResponseFormat.Json)] 
public static string CurrentFile() 
{ 
    var d = new { FileID = "123" }; 
    return JsonConvert.SerializeObject(d); 
} 
Смежные вопросы