onsdag den 17. april 2013

ASP.NET MVC4 JSON Actions

Det lækre i ASP.NET MVC4 er at der mulighed for at lave JSON actions. Altså actions der kan returnere JSON, i form af et såkaldt JSONResult.
Så har man muligheden for at requeste www.geekcv.dk/Profile/UploadImage hvor man har mulighed for at uploade sit billede til sin profil, og få et JSON streng returneret.
Her skal man dog sikre sig at enten javascriptet der modtager det eller jQuery kan parse det fordi ellers er det blot en tekst streng, og ikke noget smart JSON objekt.

Jeg fandt ud af i et projekt at hvis man ikke i response-type definerer at det der sendes er html/text, så ser browseren det som en ren tekststreng og dermed ved den ikke hvad den skal gøre med det. Derfor pakker den det selv ind i <pre></pre>-tags hvilket ødelægger mulighederne for dig for at få et intelligent JSON objekt (medmindre du selv fjerner disse).
Hvis man fortæller fra sin action at det json man sender tilbage er html/text, så tager browseren direkte imod det uden at gøre noget og du får dermed nemmere mulighed for at via javascript at sige eval(action_response_data) som laver dette om til et javascript objekt fra JSON.

Så man skal huske at responsetype skal være "html/text" og ikke "JSON/application".

Det lækre ved JSON og JSONResult actions i ASP.NET MVC4 er at du har så mange muligheder for at lave et effektivt site der er hurtigt, og som intelligent og effektivt kan levere data til dit site uden at refreshe hele siden. Jeg synes det er absolut enormt enormt smart!

Ingen kommentarer:

Send en kommentar

Kan du lide mit indlæg, har en kommentar, forslag eller andet på hjerte så skriv venligst