2010-01-26 15 views
5

Devo restituire un JsonResult, che contiene dell'HTML.JsonResult con codifica Html

così, qualcosa di simile:

return Json(new { id="guid", html="<param id='id'/>" }); 

Tuttavia, quando ottengo il risultato di nuovo, le parentesi angolari sono codificati come u003e, u003c , ecc ..

ho provato vari encoder, ma puo' t capire questo. Qualcuno si imbatte in questo?

Posso restituire un contenuto (stringa) con Response.ContentType = "application/json" senza questo problema, ma il mio oggetto json è piuttosto complesso e preferirei restituire un JsonResult se possibile.

Grazie!

+0

La parte "Contenuto (stringa) con Response.ContentType =" application/json "" era in oro puro. Mi avrebbe risparmiato qualche ora se visto prima. Grazie! –

risposta

1

Questo viene fatto per prevenire potenziali attacchi XSS inserendo tag HTML dannosi nei dati. Non dovrebbe avere una differenza funzionale per te. "\uxxxx" rappresenta lo stesso carattere della versione non codificata.

2

Questo è solo Unicode. Una volta che lo mostri nel browser, sarà perfetto (se il browser è l'applicazione client).