views:

437

answers:

3

I want to inject some Json into the Html page returned by the server?

Is there a public function that returns the Json string when Json(someObject) gets called?

Note that I don't want to return Json to the browser in a seperate request. I want to convert an object graph to json and inject it into a script block.

Thanks

A: 

Looking at the MVC source code, I found this:

using System.Web.Script.Serialization;
...
            // The JavaScriptSerializer type was marked as obsolete prior to .NET Framework 3.5 SP1
#pragma warning disable 0618
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            response.Write(serializer.Serialize(Data));
#pragma warning restore 0618

Why was it marked obsolete?

Ronnie Overby
The JavaScriptSerializer was marked as obsolete in ASP.NET 3.5 since in that release there was a newer serializer that came with WCF. However, since many people still wanted to use the JavaScriptSerializer we decided in ASP.NET 3.5 SP1 to un-obsolete it.
Eilon
A: 

/*I think */it uses an instance of the System.Web.Script.Serialization.JavaScriptSerializer class.

Verified with reflector that it actually does. It's a default one too, no arguments to the constructor and no properties set before it's used.

erikkallen