Ich habe ein Problem bei der Verwendung des ScriptIgnore-Tags in meiner Teilsicht, um zu verhindern, dass eine Eigenschaft serialisiert wird.
var docs = @Html.Raw(Json.Encode(Model))
Das Komische ist, wenn ich das Attribut direkt der Teilklassendatei in der .tt-Datei hinzufüge, funktioniert es wie erwartet. Aber weil diese Datei überschrieben wird, wenn ich eine Codegenerierung durchführe, habe ich versucht, MetadataType zu verwenden
[MetadataType(typeof(DocumentMeta))] // Dies wird hinzugefügt, damit wir Metadaten zu unserer Teilklassen hinzufügen können..
public partial class Document
{
}
[MetadataType(typeof(DocumentCategoryMeta))] // Dies wird hinzugefügt, damit wir Metadaten zu unserer Teilklassen hinzufügen können..
public partial class DocumentCategory
{
}
public class DocumentMeta
{
[ScriptIgnore] //Wir fügen hier das ScriptIgnore hinzu, weil wir einige dieser Entitäten im Client-Code serialisieren
public virtual ICollection DocumentCategories { get; set; }
}
public class DocumentCategoryMeta
{
[ScriptIgnore] //Wir fügen hier das ScriptIgnore hinzu, weil wir einige dieser Entitäten im Client-Code serialisieren
public virtual DocumentCategory Parent { get; set; }
}
Ich erhalte immer noch den gleichen Fehler: Es wurde eine zirkuläre Referenz erkannt beim Serialisieren eines Objekts des Typs 'DocumentCategory'.
Weil DocumentCategory hierarchische Daten enthält.
Jede Hilfe wäre sehr geschätzt!
Tribe84