In meiner ASP.NET MVC4-Anwendung habe ich ein Modell, das folgendermaßen definiert ist:
%Vor% Wenn ich dieses Objekt mit ApiController zurückgebe, erhalte ich korrekte Objekte ohne mit JsonIgnore
-Attribut, aber wenn ich versuche, dasselbe Objekt in der cshtml-Datei unter Verwendung von Code hinzuzufügen, bekomme ich all Felder.
Es sieht so aus, als ob @ Json.Encode diese Attribute ignoriert.
Wie kann das behoben werden?
Die von Ihnen verwendete Klasse System.Web.Helpers.Json
basiert auf JavaScriptSerializer
Klasse von .NET.
Die JsonIgnore
-Eigenschaften, die Sie in Ihrem Modell verwendet haben, sind spezifisch für die Newtonsoft Json.NET-Bibliothek, die standardmäßig für die ASP.NET-Web-API verwendet wird. Deshalb funktioniert es nicht.
Sie könnten denselben JSON-Serializer in Ihren Razor-Ansichten verwenden, um mehr Konsistenz mit Ihrer Web-API zu erreichen:
%Vor% Sie können [ScriptIgnore]
auch für Ihr Modell verwenden, z. B .:
Und rendern Sie wie Sie waren:
%Vor%Tags und Links asp.net-mvc c# asp.net json asp.net-mvc-4