L'helper Json.Encode()
utilizza la classe JavaScriptSerializer
per codificare una stringa in json?Json.Encode() utilizza la classe JavaScriptSerializer per serializzare
Ricevo un'eccezione di riferimento circolare quando si utilizza Json.Encode(Model)
anche se le proprietà di classe che si stanno serializzando hanno l'attributo [ScriptIgnore]
.
La mia unica ipotesi è che forse l'helper Json.Encode()
non utilizzi JavaScriptSerializer per serializzare su json ma non riesco a trovare la documentazione da nessuna parte su msdn.
@Html.Raw(Json.Encode(Model))
Ecco un esempio di uno dei modelli che ha una proprietà che non deve essere serializzato ...
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web.Script.Serialization;
namespace RobotDog.Entities {
public class Character {
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[MaxLength(200)]
public string Name { get; set; }
public virtual Person Person { get; set; }
[ScriptIgnore]
public virtual Movie Movie { get; set; }
}
}
'Json.Encode' molto probabilmente usa il' System.Web.Mvc' spazio dei nomi diverso da 'System.Web.Script.Serialization.JavaScriptSerializer'. Cosa stai cercando di ottenere? – juanreyesv
Nel mio controller interrogo il mio repository per ottenere un 'IEnumerable' e quindi nella vista serializzo il modello perché sto usando KnockoutJS per l'interfaccia utente. –
bflemi3
Vorrei anche ricordare che le mie entità si trovano in un progetto di libreria di classi separato dal mio progetto web. – bflemi3